《汇编语言程序设计习题解答.pdf》由会员分享,可在线阅读,更多相关《汇编语言程序设计习题解答.pdf(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!汇编语言程序设计习题解答 1 指出下列指令的错误:(1)MOV AH,BX (2)MOV BX,SI (3)MOV AX,SIDI (4)MOV MYDATBXSI,ES:AX (5)MOV BYTE PTRBX,1000 (6)MOV BX,OFFSET MYDATSI (7)MOV CS,AX 答:(1)MOV AH,BX AH 为八位,BX 为 16 位 (2)MOV BX,SI 两个操作数不能都是存储单元 (3)MOV AX,SIDI 一个操作数中不能用两个变址寄存器 (4)MOV MYDAT
2、 BXSI,E8:AX ES ES 后应为一个变址寄存器,表示偏移量 (5)MOV BYTE PTRBX,1000 BYTE 说明时BX 进行字节操作。而 1000 为字 (6)MOV BX,OFFSET MYDAT SI OFFSET 为取某个地址的偏移量,故后面不应用SI,而应是一个符号地址。(7)MOV 是数据寻址,不应用程序段寄存器CS.2下面哪些指令是非法的?(假设OPl,OP2 是已经用DB 定义的变量)(1)CMP l5,BX (2)CMP OPl,25 (3)CMP OPl,OP2 (4)CMP AX,OPl 答:(1)CMP 15,BX 非法,两个操作数不能一个为字,一个为字
3、节 (2)CMP OP1,25 正确 (3)CMP OP1,OP2 正确 (4)CMP AX,OP1 非法,两操作数不能一个为字,一个为字节 3假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的?它们的错误是什么?(1)MOV BP,AL (2)MOV WORD_OPBX+4*3DI,SP (3)MOV WORD_OPl,WORD_OP2 (4)MOV AX,WORD_OPlDX (5)MOV SAVE_WORD,DS (6)MOV SP,SS:DATA_WORDBXSI (7)MOV BXSI,2(8)MOV AX,WORD_ OPl+WORD_OP2(9)MOV
4、 AX,WORD_ OPl-WORD_OP2+100(10)MOV WORD_ OPl,WORD_ OPl-WORD_OP2 答:(1)MOV BP,AL 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!非法,BP 为 16 位 AL 为八位 (2)MOV WORD_OPBX+4*3DI,SP 正确(3)MOV WORD_OP1,WORD_OP2 非法,两个操作数不能都是变量(4)MOV AX,WORD_OP1DX 非法,DX应改为BX,BP,SI或 DI,则为寄存器相对寻址。(5)MOV SAVE_WORD,DS 非法,未指明数据段地址DS 的偏
5、移量(6)MOV SP,SS:DATA_WORDBXSI 非法,SS 与 BX,SI不匹配,SS 的偏移量用SP(7)MOV BXSI,2 正确(8)MOV AX,WORD_OP1+WORD_OP2 正确(9)MOV AX,WORD_OP1 WORD_OP2+100 正确(10)MOV WORD_OP1,WORD_OP1 WORD_OP2 非法 4假设VAR1 和 VAR2 为字变量,LAB 为标号,试指出下列指令的错误之处:(1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LABSI (4)JNZ VARl(5)JMP NEAR LAB 答:(1)ADD VAR1,VAR2 ADD 指令中,目的操作数必须是寄存器或存储单元。(2)SUB AL,VAR1 AL 为 8 位的,而VAR 为字变量16 位 (3)JMP LAB SI 格式不对,LAB 处应为一偏移量,而不是标号。(4)JNZ VAR1 JNZ 为非零转移,应转移到某个程序段,故后面应为一个标号。(5)JMP NEAR LAB 段内直接转移,格式应为 JMP NEAR PTR LAB