复习题1: 1、 指出下列指令的错误 (1)MOV AH,BX (2)MOV [BX],[SI] (3)MOV AX,[SI] [DI] (4)MOV MYDAT [BX] [SI],ES:AX (5)MOV BYTE PTR [BX],1000 (6)MOV BX,OFFSET MYDAT[SI] (7)MOV CS,AX (8)SAL AL, 5 答案: (1)MOV AH,BX 源操作数与目的操作数长度不相同 (2)MOV [BX],[SI] 这是两个内存单元在传递数据,而这在汇编语言中是不允许的
不允许两内存单元同时作为源操作数和目的操作数进行运算 (3)MOV AX,[SI] [DI] 不能用两个变址连用,其中一个应为基址 BX 或 BP (4)MOV MYDAT [BX] [SI],ES:AX 同(2) (5) MOV BYTE PTR [BX],1000 源操作数与目的操作数长度不相同,1000D=3E8H (6)MOV BX,OFFSET MYDAT [SI] OFFSET 不能与复杂操作数相连 (7)MOV CS,AX ,不能对 CS 赋值 (8)MOV CL,5 SAL AL,CL 2、下面哪些指令是非法的
(假设 OP1,OP2 是已经用 DB 定义的变量) (1)CMP 15,BX (2)CMP OP1,25 (3)CMP OP1,OP2 (4)CMP AX,OP1 答案 (1)非法 (2)合法 (3)非法 (4)非法 3、假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的
它们的错误是什么
(1)MOV BP,AL (2)MOV WORD_ OP [BX+4*3] [DI],SP (3)MOV WORD_ OP1, WORD_ OP2 (4)MOV AX, WORD_ OP1 [DX] (5)MOV SAVE_ WOR