汇编 判断下列各小题是否有错,并指出错误

1个回答

  • 1、 SUB BL,AX 错,两个操作数长度不一致.

    2、 POP BL 错,堆栈操作必须是字类型操作数.

    3、 SHR AX,8 错,移位位数超过1位时要提前放在cl中.

    4、 INC AL ,100H 错,inc是单操作数指令,完成加1运算.另外al+100h也没法加啊,就算改成add al,100h也不对,因为操作数类型不一致.

    5、 MOV [SI],[BX] 错,两个操作数不能都是存储器操作数.

    6、 ADD AX,[SI+DI].错,寻址方式错误.基址变址寻址不能两个都是变址寄存器.

    7、 DIV 100H 错,div的操作数不能是立即数.

    8、 MOV DS,DATA(段名)错,段名出现在操作数部分,当做立即数处理,而立即数是不能直接送段寄存器滴.

    9、 LEA BL,BUF(变量)错,lea的功能是取变量的偏移地址,偏移地址是16位的,不能用八位寄存器bl来接收.

    10、 CMP AX,ES:SI 错,段跨越前缀"es:"只能加在存储器操作数寻址方式前,应改为es:[si]