中易网

汇编语言错误

答案:1  悬赏:40  
解决时间 2021-04-28 01:31
  • 提问者网友:你在我心中是最美
  • 2021-04-27 22:08

运行时候出现如图

调试的时候出现如图

代码如下 望高手指点

DATAS SEGMENT
 peo db 50 dup(20 dup(' '),8 dup(' '),'$')
DATAS ENDS

CODES SEGMENT
MAIN PROC FAR
    ASSUME CS:CODES,DS:DATAS
START:
mov cx,2
mov dx,1
    soso:
cmp cx,dx
jz exit

mov ax,29
push dx
mul cx
pop dx

mov di,offset peo

add di,ax;后一个元素的地址
mov si,di
sub di,29
push cx
mov cx,29
rep movsb;si里面的送到di里面去

pop cx


dec cx

jmp soso

exit:
   
    MOV AH,4CH
    INT 21H
MAIN ENDP
CODES ENDS
    END START

最佳答案
  • 二级知识专家网友:深街酒徒
  • 2021-04-27 22:57
开始没定义DS , START:后面加上mov ax,datas mov ds,ax, 后面用rep movsb 是串传递指令意思是把ds:si中元素传递个es:di中,你没定义es,在实用rep movsb前应先定义标志CF中的值,看你的意思是正向传递,所以在rep movsb前要加上cld 还有你这程序是子程序么?为什么开头和结尾要用MAIN PROC FAR? 大概就看出这点错误 整个程序没弄懂要干什么
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息