汇编改错,会的帮下。谢谢

来源:百度知道 编辑:UC知道 时间:2024/09/25 02:34:40
assume cs:code
code segment
mov 0020:[0],0
mov bx,1
mov cx,63
s:
add 0020:[bx-1],1
mov 0020:[bx],0020:[bx-1]
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end

以上是我自己写的,错了,帮看下是哪里错了。题目是用9行汇编指令(包括程序返回的那2行,不算伪指令)向内存0:200--0:23F里依次传送0--63(0--3FH)。

用不了9行啊!!如下
assume cs:code
code segment
start:mov bx,0 ;XOR BX一样的还少一个字节
mov cx,64 ;64次传送
s:mov 0020:[bx],BL ;字节型数据所以用BL
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start

非要凑9行也简单,中间随便放两行,可以是
XOR AX
XOR DX,这些没用的,当然楼主也可以改个算法,多运用一个寄存器,不过我想程序还是精简的好吧~!这道题巧啊,刚好偏移地址和传送的数据是一样的,所以嘛,用同一个寄存器就可以了!