简答题

设VAR1、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。 (1) ADD VAR1,VAR2 (2) MOV AL,VAR2 (3) SUB AL,VAR1 (4) JMP LAB[SI] (5) JNZ VAR1 (6) JMP NEAR LAB

正确答案

(1) ADD VAR1,VAR2
错误,两个操作数不能都为存储单元,可改为 MOV BX,VAR2 ADD VAR1,BX
(2) MOV AL,VAR2
错误,数据类型不匹配,可改为MOV AX,VAR2
(3) SUB AL,VAR1
错误,数据类型不匹配,可改为SUB AX,VAR1
(4) JMP LAB[SI]
错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMP VAR1[SI]
(5) JNZ VAR1
错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZ LAB
(6) JMP NEAR LAB
错误,缺少运算符PTR,可改为JMP NEAR PTR LAB

答案解析

相似试题
  • 假定VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处。

    简答题查看答案

  • 假设VAR1和VAR2为字变量,LAB为标号,指出下列指令出错的原因何在? (1)ADD AL,VAR1   (2)SUB VAR1,VAR2   (3)JMP VAR1   (4)JNZ LAB[SI]     (5)JMP NEAR LAB

    简答题查看答案

  • 指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量, L1为标号):

    简答题查看答案

  • 字变量VAR1中保存有小于38250的16位无符号数,编写程序段实现VAR1÷150,并进行四舍五入操作,将商保存在字节变量VAR2中。

    简答题查看答案

  • 指出以下指令中哪些是无效的,并说明原因。 (1)ADDR DB $ (2)DATA DB F0H,12H (3)1_DATA DW 1234H (4)@VAR DW VAR1 ;VAR1为一个字节变量 (5)MOV AX,[10-VAR1] ;VAR1为一个字变量 (6)MOV BX,[VAR2*2+1] ;VAR2为一个字变量

    简答题查看答案

  • 已知以下数据段: DATA SEGMENT VAR1 DB 10 dup(2, 3 dup( )) VAR2 DW VAR3, VAR1, 10h VAR3 DB 10, , 12 dup( ) DATA ENDS 数据段DATA中定义的三个变量共占用()字节空间。

    单选题查看答案

  • 已知以下数据段: DATA SEGMENT VAR1 DB 8 dup (2, 3 dup(?)) VAR2 DW VAR3, VAR1, 10h VAR3 DW 10, ?, 8 dup(?) DATA ENDS 数据段DATA中定义的三个变量共占用()字节空间。

    单选题查看答案

  • 有如下定义 VAR1 DB 1, 2, 3, 4, 5 VAR2 DB '12345' NUM4 EQU VAR2–VAR1 则NUM4=()

    单选题查看答案

  • 设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:

    简答题查看答案