主题:改错!!!!!!!!!!!!!!!!!!
haoson
[专家分:10] 发布于 2007-06-14 12:35:00
1 CMP -5[DX],AX
2 SUB CX, [BX+BP]
3 MOV [BX],5
4 LEA POINT,BUF
5 OUT DX, ‘A’
它们有什么错啊?
回复列表 (共1个回复)
沙发
塞北江南 [专家分:1350] 发布于 2007-06-14 12:53:00
1 CMP -5[DX],AX
;在16位汇编环境下,间接寻址寄存器不能用DX,可以改为 CMP -5[BX],AX
2 SUB CX, [BX+BP]
;BX和BP都是基址寄存器,不能同时在一个操作数中出现,可以改为
SUB CX,[BX+SI]
3 MOV [BX],5
;[BX]是内存操作数,必须指明是8位还是16位传送,从源操作数5看不出来到底是
多少位,所以必须明确指出,可以改为MOV BYTE PTR [BX],5
4 LEA POINT,BUF
;LEA指令的目标操作数必须是寄存器!可以改为LEA DX,BUF
5 OUT DX, ‘A’
;OUT指令输出时,源操作数必须是AL或AX或EAX,可以改为:OUT DX,AL
注意:以上5题都有多种改正方法!
我来回复