(新手)如果要求字符串从键盘中输入该怎么办?
data segmentstr1 db 'what is your name?',0ah,0dh,'$'
cn EQU $-str1
str2 EQU str1+cn-5 ; 定义str2单元
data ends
code segment
assume ds:data,cs:code,es:data
start:mov ax,data
mov ds,ax
mov es,ax ; 段寄存器初始化
mov dx,OFFSET str1
mov ah,09h
int 21h ; 显示字符串
mov si,OFFSET str1 ; di指向原字符串首单元
mov di,OFFSET str2 ; si指向目表位置首单元
mov cx,cn ; 循环次数送cx
add si,cn-1 ; si指向原串末单元
add di,cn-1 ; di指向目标位置末单元
std ; df=1
rep movsb ; 重复传送
mov dx,OFFSET str2
mov ah,09h
int 21h ; 显示字符串
mov ah,4ch
int 21h ; 返回DOS
code ends
end start 顶一下 这个恐怕要参照in指令,你用金手指看一下吧。
另外,我还是比较看不懂你写的东西,大概还没看到后面{:10_266:}
比如 int 21h居然是显示字符串的指令?
比如 cn EQU $-str1 这种伪操作可行?cn的值是什么?{:10_245:}
zealstar 发表于 2016-12-5 03:05
这个恐怕要参照in指令,你用金手指看一下吧。
另外,我还是比较看不懂你写的东西,大概还没看到后面{:10_2 ...
这个程序的功能是将str1中的内容移动到str2中,是学校做实验的内容 现在要我们改一下 zealstar 发表于 2016-12-5 03:05
这个恐怕要参照in指令,你用金手指看一下吧。
另外,我还是比较看不懂你写的东西,大概还没看到后面{:10_2 ...
cn里存的是循环次数
页:
[1]