西南交大 微机原理及应用 第四章 答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4-1 下边的程序是实现 AX←AL*12 的操作,请判断其中语句的正误并改正。

XOR AX, AX SAL AX, 2 MOV BX, AX SAL AX, 1 ADC AX, BX 解: XOR AH,AH 的高八位清零。

;对 AX 的高八位清零。

SAL AL,1 SAL AL,1 MOV CL,2 SAL AL,CL 4-2 对于给定的符号定义,指出下列指令的错误,并说明原因。

A EQU 505 B DB ? C DB 64H (1)MOV A, AX (2)MOV B, AX (3)MOV AX, B (4)CMP C, AX (5)CMP A, C (6)CMP AX, C 解: 目标操作数地址 (1)A 是符号常量,不能做目标操作数地址; ) 是符号常量,不能做目标操作数地址; (2)类型不匹配 )类型不匹配; (3)类型不匹配 )类型不匹配; (4)类型不匹配 )类型不匹配; (5)目标数不能用立即数; )目标数不能用立即数; 是字类型。

(6)格式不匹配,C 是字节类型,而 AX 是字类型。

类型不匹配 )格式不匹配, 是字节类型, 4-3 试问下列伪指令在存储区中分别为各变量分配多少字节? VR1 DW 10 VR2 DW 6 DUP(?),66,88 VR3 DD 10 DUP(?) VR4 DB 2 DUP(?,8 DUP(0)) 解: 分配两个字节; 分配十六个字节; 分配四十个字节; 为 VR1 分配两个字节;为 VR2 分配十六个字节;为 VR3 分配四十个字节;为 VR4 分配十八个字节。

分配十八个字节。

4-4 对于给定的数据定义,变量 R1 和 R2 的值是多少? (1)A1 DB 1,2,3,’ABC’ A2 DB 0 R1 EQU A2-A1 (2)K1 DW ?


K2 DB 6 DUP(?) K3 DD ? R2 EQU $-K1 解: R1=6; R2=12. 4-5 试用示意图来说明下列变量在存储器中的分配情况. VAR1 DW 9 VAR2 DW 4 DUP(?),2 CONT EQU 2 VAR3 DD CONT DUP(?) VAR4 DB 2 DUP(?,CONT DUP(0),’AB’) 解: 设段地址是 3000,VAR1 的首地址是 1000,则各变量在存储器中的分配情况如 , , 下:
地址 3000:1000H 3000:1001H 3000:1002H 3000:1003H 3000:1004H 3000:1005H 3000:1006H 3000:1007H 3000:1008H 3000:1009H 3000:100AH 3000:100BH 3000:100CH 3000:100DH 3000:100EH 3000:100FH 3000:1010H 3000:1011H 3000:1012H 3000:1013H 3000:1014H 3000:1015H 3000:1016H 3000:1017H 存储内容 09H 00 ? ? ? ? ? ? ? ? 2H 00 ? ? ? ? ? ? ? ? ? 0 0 ‘A’
VAR4 VAR2 VAR1
地址 3000:1018H 3000:1019H 3000:101AH 3000:101BH 3000:101CH 3000:101DH 3000:101EH 3000:101FH 3000:1020H
存储内容 ‘B’ ? 0H 0H ‘A’ ‘B’
VAR3


4-7 写出以下指令在汇编后目标程序中对应的指令. (1)MOV AX, 1234H GT 1024H (2)ADD CX, 1024 SHR 4 (3)OR AL, 3 AND 47H (4)AND BL, NOT(7 OR 54H) (5)MOV AX, HIGH(1234H+5) (6)MOV AX, HIGH 1234H+5 解: (1)MOV AX,0FFFFH (2)ADD CX,40H (3)OR AL,3H (4)AND BL,0A8H (5)MOV AX, 12H (6)MOV AX,17H 4-8 数据段有如下语句: ORG 10H CON EQU 15H VAR1 DW $,20H VAR2 DW VAR1+CON+5H 上述语句经过汇编后,VAR1 字单元和 VAR2 字单元的值分别是多少? 解: VAR1 的值是 0010H,VAR2 的值是 002AH。

4-10 某存储区中存有 20 个字节的带符号数,试编写一个程序分别求出其绝对值 并将结果放回原处。

解: ?,?,… VAR DB ?,?,… COUNT EQU $-VAR MOV BX, 0000H MOV CX,COUNT LEA DI,VAR A: MOV AL,[DI+BX] MOV AH, AL AND AH, 80H JNZ B ;Z=0,即是正数,检查下一位 即是正数, NEG AL MOV [DI+BX], AL B: INC BX LOOP A MOV AX, 4C00H INT 21H


4-11 试编写一个程序,将 AX 中各位取反,然后统计出 AX 中“0”的个数,将 结果保存到 CL 中。

解: MOV CX, 0000H NOT AX ;对 AX 各位取反 MOV BX, AX A: SAL BX JC B ;C=1,即对应位为 1 即对应位为 INC CL B: INC CH CMP CH, 10H JE C ;CH=16,即检验到了最后一位。

,即检验到了最后一位。

JMP A C: MOV AH, 4CH INT 21H 4-12 编写程序求级数 1+2+3+4+------的前 N 项和刚大于 1000 的项数 N。

说明各个用到的寄存器的作用, 解:(说明各个用到的寄存器的作用,写出完整程序 说明各个用到的寄存器的作用 写出完整程序) MOV AX, 0000H MOV BX, 0000H A: INC BX ADD AX, BX CMP AX,3E8H JC A ,继续累加 ;小于 3E8H(1000) 继续累加 ( ) , MOV AX,BX ;将项数 N 存入 AX 4-13 试编程统计 DAT 数据区中正数、 负数的个数, 0、 分别放在 CONT1、 CONT2 和 CONT3 字节单元中。

解: 设这些数据都是字节型的,且个数为 设这些数据都是字节型的 且个数为 COUNT CONT1 DB 0 CONT2 DB 0 CONT3 DB 0 LEA DI, DAT MOV CX, COUNT A: MOV AX, [DI] CMP AX, 0000H JZ B JL C INC CONT1 JMP D B: INC CONT2 JMP D
;ZF=1,则这个数是 0 , ;ZF=0,则这个数是负数 ,


C: INC CONT3 D: INC DI LOOP A MOV AH, 4CH INT 21H
;CX=0,则统计完成 , ;返回 DOS 返回











相关文档
最新文档