📄 ex6_2.asm
字号:
name ex6_2
data segment
A db '1234567890',4 dup(?),'$'
count equ $-A
B db 'ABCD'
char db '$'
position db ?
notice db 'please input position:$'
data ends
code segment
assume cs:code,ds:data,es:data
start:
mov ax,data
mov ds,ax ;填充数据段
mov es,ax ;填充附加段
mov dx,offset notice ;notice首地址-->dx
mov ah,09h ;显示notice信息
int 21h
mov ah,01h ;输入一个字符,即指定位置
int 21h
mov position,al ;把位置放到position中
and position,0fh
mov dl,0dh ;回车
mov ah,02h
int 21h
mov dl,0ah ;换行
mov ah,02h
int 21h
lea di,A ;字符串A的首地址 -->di
mov cx,count ;count-->cx
cld ;0-->df
mov al,char ;'$'-->al
repne scasb ;寻找串A尾标志
jz found ;找到尾标志,跳到found
found:
sub di,6 ;di-6-->di,即di指向A的'0'
mov bh,0 ;
mov bl,position ;将指定位置放在bx中
mov cx,count ;
sub cx,bx ;
sub cx,4 ;获取串A移动长度
move1: ;移动串A
mov bl,[di] ;
mov [di+4],bl ;
dec di ;
loop move1 ;
;
lea si,B ;B的首地址-->si
inc di ;
mov cx,4 ;串B插入串A长度
move2: ;串B插入串A中
mov bl,[si] ;
mov [di],bl ;
inc si ;
inc di ;
loop move2 ;
display: ;显示插入后的串A
mov dx,offset A ;
mov ah,09h ;
int 21h ;
mov ah,4ch ;退出DOS
int 21h ;
code ends ;结束代码段
end start ;结束程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -