好文档 - 专业文书写作范文服务资料分享网站

汇编语言程序设计习题解答

天下 分享 时间: 加入收藏 我要投稿 点赞

汇编语言程序设计习题解答

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 答:(1)MOV AH,BX AH 为八位,BX为16位

(2)MOV [BX],[SI] 两个操作数不能都是存储单元

(3)MOV AX,[SI][DI] 一个操作数中不能用两个变址寄存器 (4)MOV MYDAT [BX][SI],E8:AX ES

ES 后应为一个变址寄存器,表示偏移量 (5)MOV BYTE PTR[BX],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

非法,两个操作数不能一个为字,一个为字节 (2)CMP OP1,25 正确 (3)CMP OP1,OP2 正确 (4)CMP AX,OP1

非法,两操作数不能一个为字,一个为字节

3.假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的?它们的错误是什么? (1)MOV BP,AL

(2)MOV WORD_OP[BX+4*3][DI],SP (3)MOV WORD_OPl,WORD_OP2 (4)MOV AX,WORD_OPl[DX] (5)MOV SAVE_WORD,DS

(6)MOV SP,SS:DATA_WORD[BX][SI] (7)MOV [BX][SI],2

(8)MOV AX,WORD_ OPl+WORD_OP2 (9)MOV AX,WORD_ OPl-WORD_OP2+100 (10)MOV WORD_ OPl,WORD_ OPl-WORD_OP2 答:(1)MOV BP,AL

非法,BP为16位 AL为八位 (2)MOV WORD_OP[BX+4*3][DI] ,SP 正确

(3)MOV WORD_OP1 ,WORD_OP2 非法,两个操作数不能都是变量 (4)MOV AX , WORD_OP1[DX]

非法,[DX]应改为[BX],[BP],[SI]或[DI],则为寄存器相对寻址。 (5)MOV SAVE_WORD ,DS

非法,未指明数据段地址DS的偏移量 (6)MOV SP,SS:DATA_WORD[BX][SI]

非法,SS与[BX],[SI]不匹配,SS的偏移量用SP (7)MOV [BX][SI] ,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 LAB[SI] (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

汇编语言程序设计习题解答

汇编语言程序设计习题解答1.指出下列指令的错误:(1)MOVAH,BX(2)MOV[BX],[SI](3)MOVAX,[SI][DI](4)MOVMYDAT[BX][SI],ES:AX(5)MOVBYTEPTR[BX],1000(6)MOVBX,OFFSETMYDA
推荐度:
点击下载文档文档为doc格式
4ypi87yk8y0a6ri16zu4
领取福利

微信扫码领取福利

微信扫码分享