回 帖 发 新 帖 刷新版面

主题:改错!!!!!!!!!!!!!!!!!!

1  CMP -5[DX],AX
2  SUB  CX, [BX+BP]  
3  MOV  [BX],5
4  LEA  POINT,BUF       
5  OUT   DX, ‘A’

它们有什么错啊?

回复列表 (共1个回复)

沙发

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题都有多种改正方法!

我来回复

您尚未登录,请登录后再回复。点此登录或注册