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

内容发布更新时间 : 2024/12/25 1:28:13星期一 下面是文章的全部内容请认真阅读。

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