微机原理与接口技术 顾晖 习题参考答案 下载本文

END START MOV CX,100

MOV AX,SEG LIST MOV DS,AX

MOV AX,SEG BLK MOV ES,AX LEA SI,LIST ADD SI,CX LEA DI,BLK ADD DI,CX STD

REP MOVSB 15

25. 答:

JMP SHORT LAB指令是一条双字节指令。这条指令取出后,(IP)=0102H,转移目标的偏移地址=(IP)+位移量。所以,转移目标的物理地址=(CS)╳16+(IP)+位移量。 (1)转移目标的物理地址=(CS)╳16+0158H (2)转移目标的物理地址=(CS)╳16+0182H (3)转移目标的物理地址=(CS)╳16+017AH (4)转移目标的物理地址=(CS)╳16+01E2H 26. 答: DSEG SEGMENT BUFFER DW 8 DB '12345678' DSEG ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DSEG START:

MOV AX,DSEG MOV DS,AX MOV CX,BUFFER SAR CX,1

LEA SI,BUFFER MOV DI,SI ADD DI,2 AGAIN: ADD SI,2 MOV AL,[SI] AND AL,0FH

SAL BYTE PTR [SI+1],1 SAL BYTE PTR [SI+1],1 SAL BYTE PTR [SI+1],1 SAL BYTE PTR [SI+1],1 OR AL,BYTE PTR [SI+1]

17

MOV [DI],AL INC DI LOOP AGAIN EXIT:

MOV AH,4CH INT 21H CODE ENDS END START

DSEG SEGMENT ORG 10H DAT DB 10 DB ? DSEG ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AL,DAT MOV BL,AL SAL BL,1 ADD AL,BL MOV CL,2 SAL BL,CL ADD AL,BL MOV DAT+1,AL EXIT: MOV AH,4CH INT 21H CODE ENDS END START

16

27. 答: 28. 答: 29. 答: DSEG SEGMENT ORG 10H

DAT DB 10H,20H DB ?,? DSEG ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DSEG START:

MOV AX,DSEG

18

MOV DS,AX MOV AL,DAT MOV AH,DAT+1 MOV CL,3 SAR AX,CL MOV DAT+2,AL MOV DAT+3,AH EXIT:

MOV AH,4CH INT 21H CODE ENDS END START DSEG SEGMENT

BLOCK DW 8 DUP (10H,20H,-3,-9) DSEG ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DSEG START:

MOV AX,DSEG MOV DS,AX LEA SI,BLOCK MOV CX,32 AGAIN:

MOV AX,[SI] CMP AX,0 JNS NEXT NEG AX

MOV [SI],AX NEXT: INC SI INC SI LOOP AGAIN EXIT:

MOV AH,4CH INT 21H CODE ENDS END START 17

DSEG SEGMENT ORG 3030H

DAT DW 1234H,-1234H,?,? DSEG ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DSEG

19

START:

MOV AX,DSEG MOV DS,AX MOV AX,DAT MOV BX,DAT+2 IMUL BX

MOV DAT+4,AX MOV DAT+6,DX EXIT:

MOV AH,4CH INT 21H CODE ENDS END START 18

第5章 习题答案

1. 答:

标号是指令的符号地址,可用作控制转移指令的操作数。 标号具有3种属性:段属性、偏移属性和类型属性。 2. 答:

变量是存储单元的符号地址。

变量具有3种属性:段属性、偏移属性和类型属性。 3. 答:

伪指令语句,也称指示性语句,是不可执行语句,汇编后不产生目标代码,它仅仅在汇编过程中告诉汇编程序如何汇编源程序。

宏是一个以宏名定义的指令序列。一旦把某程序段定义成宏,则可以用宏名代替那段程序。在汇编时,要对宏进行宏展开,即把以宏名表示的地方替换为该宏对应的指令序列的目标代码。宏指令可以看成指令语句的扩展,相当于多条指令语句的集合。 4. 答:

汇编语言表达式中有如下运算符:算术操作符、逻辑操作符、移位操作符、关系操作符、数值回送操作符和属性操作符。

操作符所完成的运算在汇编阶段进行。 5. 答: 略。

6. 按下列要求,写出各数据定义语句 2分

1)DB1为10H个重复的字节数据序列:1,2,5个3,4。 2)DB2为字符串?STUDENTS?。

3)DB3为十六进制数序列:12H,ABCDH。

4)用等值语言给符号COUNT赋值DB1数据区所占字节数,该语句写在最后。答: (1)DB1 DB 10H DUP(1,2, 5 DUP(3),4) (2)DB2 DB 'STUDENT' (3)BD3 DW 12H,0ABCDH

20