微机原理部分课后习题答案

更新时间:2024-03-19 01:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理(第4版)部分习题参考答案

第一章 绪论

1、什么是冯诺依曼机?

答:由运算器、控制器、存储器、输入设备、输出设备等5个部分组成,其基本原理是以存储器存储程序控制的原理。

9、将下列二进制数转化为十进制数。 (1) 1101.01B=13.25

(2) 111001.0011B=57.1875 (3) 101011.0101B=43.3125 (4) 111.0001B=7.0625

10、将下列十六进制数转化为十进制数。 (1) A3.3H=163.1875 (2) 129.CH=297.75

(3) AC.DCH=172.859375 (4) FAB.3H=4011.1875

11、将下列十进制数转化为二进制、八进制、十六进制。 (1) 23=10111B=27Q=17H

(2) 107=1101011B=153Q=6BH

(3) 1238=10011010110B=2326Q=4D6H (4) 92=1011100B=134Q=5CH

12、将下列十进制数转换为8位有符号二进制数。 (1) +32=00100000B (2) -12=11110100B (3) +100=01100100B (4) -92=10100100B

13、将下列十进制数转化为压缩和非压缩格式的BCD码。

压缩 非压缩

(1) 102=00000001 00000010 00000001 00000000 00000010 (2) 44=01000100 00000100 00000100

(3) 301=00000011 00000001 00000011 00000000 00000001

(4) 1000=00010000 00000000 00000001 00000000 00000000 00000000 14、将下列二进制数转换为有符号十进制数。 (1) 10000000B=-128 (2) 00110011B=51 (3) 10010010B=-110 (4) 10001001B=-119

第二章 8086系统结构

5、要完成下述运算或控制,用什么标志位判别?其值是什么?

(1)比较两数是否相等。 (2)两数运算后结果是正数还是负数。

ZF=0 不相等 SF=0 ZF=1 相等 SF=1

(3)两数相加后是否溢出? (4)采用偶校验方式,判断是否要补1? OF=0未溢出 PF=0 需补1 OF=1溢出 PF=1不需补1

(5)两数相减后比较大小。 (6)中断信号能否允许? 无符号数:CF=0被减数大于减数 IF=0不允许 CF=1被减数小于减数 IF=1允许 有符号数:SF=0被减数大于减数 SF=1被减数小于减数

8、用伪指令将下列16位十六进制数存储在存储器中,并画出内存分布图。 a) 1234H b) A122H c) B100H A DW 1234H A 34 B DW A122H 12 C DW B100H B 22 A1 C 00 B1

10、在实模式下对下列CS:IP的组合,求出要执行的下一条指令的存储地址。

a) CS:IP=1000H:2000H 12000 b) CS:IP=2000H:1000H 21000 c) CS:IP=1A00H:B000H 25000 d) CS:IP=3456H:AB09H 3F069

11、实模式下,求下列寄存器组合所寻址的存储单元地址。

a) DS=1000H, DI=2000H 12000H b) SS=2300H, BP=3200H 26200H c) DS=A000H, BX=1000H A1000H d) SS=2900H, SP=3A00H 2CA00H

12、若当前SS=3500H, SP=0800H, 说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值?

解:堆栈段的物理地址为35800H,若此时入栈10个字节,SP内容是07F6H, 若再出栈6个字节,SP为07FCH。

第三章 8086的寻址方式和指令系统

1. 目的操作数 源操作数 (1) 寄存器寻址 立即寻址 (2) 寄存器寻址 立即寻址 (3) 寄存器寻址 寄存器间接寻址 (4) 寄存器相对寻址 寄存器寻址 (5) 寄存器相对寻址 寄存器寻址 (6) 基址变址寻址 立即寻址 (7) 寄存器寻址 基址变址寻址

(8) 相对基址变址寻址 寄存器寻址 (9) 直接端口寻址

(10) 寄存器寻址 寄存器寻址 2. ⑴ 0200H ⑵ 2A10H ⑶ 0200H ⑷ 5946H ⑸ 463CH ⑹ 6B59H

3. 寻址方式 物理地址 (1) 直接寻址 10100H (2) 直接寻址 10030H (3) 寄存器间接寻址 10100H (4) 寄存器间接寻址 20100H (5) 寄存器间接寻址 100A0H (6) 寄存器相对寻址 10110H (7) 寄存器间接寻址 35200H (8) 相对基址变址寻址 352D0H (9) 相对基址变址寻址 10154H (10) 基址变址寻址 35224H 5. AL=24H ($字符的ASCII码) BX=000EH CX=5550H DX=1224H SI=459AH DI=459AH DS=1200H ES=1200H

A单元的内容为34H

6. 除⑻正确外,其余都错误 ⑴操作数长度不一致

⑵立即数不能作为目的操作数

⑶不允许把立即数直接传送到段寄存器 ⑷不能同为存储器操作数 ⑸⑹IP不能寻址

⑺BX、BP不能同时出现 ⑼SI、DI不能同时使用 ⑽常数没有任何属性 ⑾操作数长度不一致 ⑿立即数不能参与互换

⒀输入指令只能在外部端口与累加器之间进行数据传送

⒁格式错误,此外当端口地址超过0FF时,只能采用间接端口寻址方式 7.参考答案之一

TABLE DB 40H,79H,……,18H

……

MOV BX,OFFSET TABLE MOV AL,5 XLAT

MOV AH , AL MOV AL ,7 XLAT

MOV BX ,AX

8、 PUSH AX 执行之后

1050:00FEH 60H

48H SP=00FEH

1050:0100H

PUSH BX 执行之后 1050:00FCH 87H

12H SP=00FCH

1050:00FEH 60H

48H

1050:0100H

POP BX 执行之后

87H

12H SP=00FEH

1050:00FEH 60H

48H

1050:0100H

POP AX 执行之后

87H

12H SP=0100H

60H

48H

1050:0100H

10.⑴ AH = 04H CF = 0 ⑵ BL = 36H CF = 0 ⑶ AX = DAF7H 不影响CF ⑷ CX = FFF4H CF = 0 ⑸ DH = 08H CF = 0 ⑹ CX = 0004H CF = 0 ⑺ DX = 0186H CF = 0 ⑻ AL = 04H CF = 0 ⑼ BH = F0H CF = 0 ⑽ AX = 4A10H CF = 0

⑾ 若CF原状态为0,则 BX = 1E6CH CF =0 若CF原状态为1,则 BX = 1E6DH CF =0 ⑿ DX = 4186H CF = 0 12.参考答案之一

设DX寄存器中1的个数放在BL中 MOV CX ,16 MOV BL ,0 LP2 : ROL AX ,1 JNC LP1 INC BL LP1: RCR DX ,1 LOOP LP2 参考答案之二

MOV CX ,16 MOV DX ,0 MOV BX ,0 NEXT: ROR AX ,1

JNC LP INC BX LP: ADC DX ,0 ROL DX ,1 LOOP NEXT ROR DX ,1

13.⑴ 转去 1200H :0278H 处执行 ⑵ 转去 1200H : 0300H 处执行 ⑶ 转去 1200H : 4800H 处执行 ⑷ 转去 3400H : 0ABCH 处执行 ⑸ 转去 00FFH : 4800H 处执行

若将JMP 换成CALL,转去的目标与JMP相同,只是在转移之前,要将返回地址推入堆栈保护起来。

14.⑴ AX = 5,BX = 16,CX = 0,DX = 0 ⑵ AX = 2,BX = 4, CX = 3,DX = 1 ⑶ AX = 3,BX = 7, CX = 2,DX = 0 17、(00008H)=16H (00009H)=00H (0000AH)=85H (0000BH)=04H

18.⑴ n = 0040H/4 =10H或16 ⑵ D169H : 240BH = D3A9BH

第四章 汇编语言程序设计

1、下列变量各占几个字节?

A1 DW 23H, 5876H ; 4 A2 DB 3 DUP (?), 0AH, 0DH, ‘$’ ;6 A3 DD 5 DUP (1234H, 567890H) ;40 A4 DB 4 DUP(3 DUP (1, 2, ‘ABC’)) ;60 2、下列指令完成什么功能?

LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;0~F的七段显示代码

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA MAIN PROC

MOV AX, DATA MOV DS, AX

MOV AL, 1001X00XB MOV DX, 303H

OUT DX, AL ;A口方式0输入,B口方式0输出 LEA BX, LED ;代码表基地址送入BX XH:MOV DX, 300H

IN AL, DX ;读A口 AND AL 0FH ;屏蔽高4位

XLAT ;查七段显示代码表 MOV DX, 301H

OUT DX, AL ;送B口显示 CALL DELAY2S;2s延时 JMP XH

MOV A H, 4CH

INT 21H ;返回DOS MAIN ENDP CODE ENDS END

第十章 可编程串行接口芯片8251

6、 0.00042秒,0.0042秒 9、 9600*16=153600HZ 13、 MOV AL, 0

OUT 86H, AL ;连续写3个0 DELAY ;延时,写恢复 OUT 86H, AL DELAY

OUT 86H, AL DELAY

MOV AL, 40H

OUT 86H, AL ;写复位命令字 DELAY

MOV AL, 00111000B

OUT 86H, AL ;写方式字,2个同步字符,内同步,偶校验,7个数据位 DELAY

MOV AL, 16H

OUT 86H, AL ;写同步字符(16H) DELAY

OUT 86H, AL ;写第2个同步字符 DELAY

MOV AL, 10010101B

OUT 86H, AL ;写命令字,启动搜索同步,清错误标志,允许接收发送 14、MOV AL, 0 MOV DX, 0FF2H

OUT DX, AL ;连续写3个0 DELAY ;延时,写恢复 OUT DX, AL DELAY

OUT DX, AL DELAY

MOV AL, 40H

OUT DX, AL ;写复位命令字 DELAY

MOV AL, 01011010B

OUT DX, AL ;写异步方式字,奇校验,7个数据位,1个停止位,波特率因子16 DELAY

MOV AL, 00010101B

OUT DX, AL ;清错误标志,允许接收发送 16、(2)8251初始化程序同14题(将DX置为305H) 8253初始化:MOV DX, 303H

MOV AL, 0011X1X1H

OUT DX, AL ;通道0,方式2/3,BCD计数 MOV DX, 300H MOV AL, 60H OUT DX, AL MOV AL,02H

OUT DX, AL ;N0=5MHZ/(1200*16HZ)=260 (3)接收数据程序:LEA DI, BUFFER MOV CX , COUNT MOV DX, 305H

NEXT_R: IN AL, DX ;读状态字 TEST AL, 02H

JZ NEXT_R ;RXRDY无效,循环等待 TEST AL, 38H

JNZ ERROR ;有错,转ERROR MOV DX , 304H

IN AL, DX ;接收数据 MOV [DI], AL INC DI

MOV DX, 305H

LOOP NEXT_R 发送数据程序:LEA BX, BUFFER MOV CX , COUNT MOV DX, 305H

NEXT_T: IN AL, DX ;读状态字 TEST AL, 01H

JZ NEXT_T ;TXRDY无效,循环等待 MOV DX , 304H MOV AL, [BX]

OUT DX, AL ;发送数据

INC BX

MOV DX, 305H LOOP NEXT_T

本文来源:https://www.bwwdw.com/article/zfv8.html

Top