文档详情

汇编语言第4章节答案沈美明.doc

发布:2017-03-11约4.51千字共5页下载文档
文本预览下载声明
第四章 汇编语言程序格式 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)MOV ECX,AX 答案 (1)MOV AH,BX 源操作数与目的操作数长度不相同 (2)MOV [BX],[SI] 这是两个内存单元在传递数据,而这在汇编语言中是不允许的 (3) MOV AX,[SI][DI]不能用两个变址连用,其中一个应为基址 (4)MOV MYDAT[BX][SI],ES:AX 同(2) (5)MOV BYTE PTR[BX],1000必须有一个为寄存器 (6)MOV BX,OFFSET MYDAT[SI]? OFFSET 不能与复杂操作数相连 (7)MOV CS,AX? 不能对CS赋值 (8)MOV ECX,AX?操作数类型不同 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_WORD,DS (6)MOV SP,SS:DATA_WORD[BX][SI] (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 答案: (1)非法,操作数类型不同 (2)合法 (3)非法,不允许两个内存单元直接传递数据(4)合法 (5)合法(6)合法 (7) 非法,必须有一个寄存器(8)非法,两个内存单元地址相加没有意义 (9)合法 (10)非法,同(3) 4假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处。 (1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LAB[SI] (4)JNZ VAR1 (5)JMP NEAR LAB 答案: (1)两内存单元传递数据 (2)操作数类型不同 (3)跳转指令只能跳转到符号地址 (4)转移指令后不能为变量,只能为标号 (5)格式不对,应为 NEAR PTR。 6试列出各种方法,使汇编程序把5150H存入一个存储器字中(例如:DW5150H)。 答案: (1)DW 5150H (2)MOV AX,5150H MOV ADDRESS,AX 7DATASG SEGMENT FLD1B DB personal computer FLD2B DB 10 DUP (32) FLD3B DB 20H FLD4B DB FLD5B DB 32654 FLD6B DB 10 DUP (0) FLD7B DB PART1,DUP 20 (?),PART2,DUP 50 (?),PART3,DUP 14 (?) FLD1W DW 0FFF0H FLD2W DW FLD3W DW FLD7B FLD4W DW 5,6,7,8,9 FLD5W DW 5 DUP (0) FLD6W DW (FLD6W-FLD1W)-(FLD7B-FLD1B) 8假设程序中的数据定义如下: PARTNO DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $ -PARTNO 问PLENTH的值是多少?它表示什么意义? 答案: PLENTH 的值为22,GE表示该数据段的长度~ 9有符号定义语句如下 : BUFF DB 1,2,3‘123’ EBUFF DB 0 L EQU EBUFF--BUFF 答案: L的值为7 10假设程序中的数据定义如下: LNAME DB 30 DUP(?) ADDRESS DB 30 DUP(?) CITY DB 15 DUP(?) CODE_LIST DB 1,7,8,3,2 用一条MOV指令将LNAME
显示全部
相似文档