小弟我刚学汇编,好多不懂,能帮我看一下这段代码有什么错误么

datareasegmentstring1db'goodmorning'mess1db'showthesixthword:'datareaends;***********... datarea segment
string1 db 'good morning'
mess1 db 'show the sixth word:'
datarea ends
;*******************
exca segment
string2 db 12 dup(?)
exca ends
;*******************
prognam segment
main proc far
assume cs:prognam,ds:datarea,es:exca
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov ax,exca
mov es,ax
lea si,string1
lea di,string2
cld
mov cx,12
rep movsb
sub dx,dx
lea dx,mess1
mov ah,09
int 21h
sub dx,dx
mov dl,[si+6]
mov ah,02
int 21h
ret
main endp
prognam ends
end start

这段代码就是把string1赋值给string2,然后打印输出第6个字母。
谢谢
展开
 我来答
fastfs
2014-11-02 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:805万
展开全部
mess1这个字符串没有用$结尾,mov dl,[si+6] si的值改变了,因为执行了 rep cmpsb。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式