微机计算机原理课后习题答案

更新时间:2024-06-16 10:58:01 阅读量: 综合文库 文档下载

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

j微机计算机原理课后习题答案《一》

习题答案 王忠民主编 西安电子科技大学出 第二章

1. 将下列十进制数转换成二进制和十六进制 (1)129.75 = 100000001.11B

= 81.CH (2)218.8125 = 1101 1010.1101B = DA.DH (3) 15.625 = 1111.101B = F.AH (4)47.15625 = 101111.00101B

= 2F.28H

2. 将下列二进制数转换成十进制和十六进制 (1)111010B = 58

= 3AH (2)10111100.11B = 188.875

= BC.E H (3) 0.11011B = 0.84375

= 0.D8 H (4)11110.01B = 30.25

= 1E.4H 4、完成下列16进制的加减法运算。 (1)0D14B H (2) 9C28.E H (3) 1678 .FC H (4) -80D7 H

5. 计算下列表达式的值

(1)128.8125+10110101.1011B+1F.2H = ( 101010101.101 ) B (2)287.68-10101010.11B+8E.EH =( 103.CE ) H

(3) 18.9+1010.1101B+12.6H-1011.1001B

= ( 36.525 ) D

7. 写出下列以补码表示的二进制数的真值: 1)[X]补= 1000 0000 0000 0000

?X = - 1000 0000 0000 0000 = - 215 = - 32768 (2)[Y]补= 0000 0001 0000 0001

?Y = + 0000 0001 0000 0001 = +257 (3)[Z]补= 1111 1110 1010 0101

?X = - 000 0001 0101 1011 = - 347 (4)[A]补= 0000 0010 0101 0111

?X = + 0000 0010 0101 0111 = +599 9、设有变量……..

X+Y = 1B8 H Y+Z =161 H Y+Z=13B H Z+V=0CC H

(1) 不正确 不正确 不正确 正确 (2)正确 正确 正确 溢出

12. 试计算下列二进制数为无符号数、原码、反码、补码、8421BCD码时分别代表的数值大小。若为非8421BCD数时请指出。 (1)10001000B 无符号数:27+23= 136 原码: - 000 1000 = - 8 反码: - 111 0111 = - 119 补码: - 111 1000 = - 120 8421BCD码: 88 2)00101001B 无符号数:25+23+ 20 = 41 原码: 41 反码: 41 补码: 41 8421BCD码: 29 3)11001001B

无符号数:27+26+ 23+20 = 201 原码: - 100 1001 = - 73 反码: - 011 0110 = - 54 补码: - 011 0111 = - 55 8421BCD码: 非8421BCD码 (4)10010011B

无符号数:27+24+ 21+20 = 147

原码: - 001 0011 = - 19 反码: - 110 1100 = - 108 补码: - 110 1101 = - 109 8421BCD码: 93

微机计算机原理课后习题答案《二》 2009-08-16 14:44 第三章 80X86微处理器

1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。

答:(1) BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。

(2) EU的作用:执行指令,并为BIU提供所需的有效地址。

(3) 并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。这样就实现了取指和执行指令的并行工作。 2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?

答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。其主要作用是:

(1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。AX,BX,CX,DX (2) 地址寄存器:一般用来存放段内的偏移地址。SP,BP,SI,DI (3) 段寄存器:用于存放段地址. CS,DS,ES,SS (4) 控制寄存器 ,FLAGS,IP 具体寄存器略。

3.8086/8088CPU中有哪些寄存器可用来指示操作数在存储器中某段内的偏移地址? 答:可用来指示段内偏移地址的寄存器共有6个:IP、SP、BP、BX、SI、DI. 4.8086/8088CPU中标志寄存器FLAGS有哪些标志位?它们的含义和作用如何?

答:标志寄存器中的标志共有9个,分为两类:状态标志6个和控制标志3个。其作用

是:

(1) 状态标志:用来反映算术和逻辑运算结果的一些特征。CF,AF,PF,ZF,SF,ZF (2) 控制标志位:用来控制CPU的操作,由程序设置或清除。DF,IF,TF. 具体寄存器位介绍略。

5.8086/8088CPU的地址总线有多少位?其寻址范围是多少?

答:8086/8088地址总线有20根,可寻址1MB空间,范围:00000H~0FFFFFH.

6.什么叫指令队列?8086/8088CPU中指令队列有什么作用?其长度分别是多少? 答:(1) 指令队列:采用“先进先出”原则,按顺序存放预执行指令的缓冲器称为指令队列。

(2) 指令队列的作用:存放EU将要执行的指令,使CPU的取指和执行指令能并行工作。

(3) 指令队列的长度:8086为6个字节,8088为4个字节。 7.Intel8086与8088有何区别?

答:8086与8088的区别有三处:

(1) 外部数据总线位数不同(即地址/数据分时复用引脚条数不同);8086为16位:AD15~AD0 。

8088为 8位:AD7~AD0 。 (2) 内部指令队列缓冲器长度不同;

8086有6个字节。当指令队列出现2个空字节时,BIU将取指补充。 8088有4个字节。当指令队列出现1个空字节时,BIU将取指补充。 (3) 外部某些控制总线定义不同。

① 8086的28号引脚定义为M/IO(S2),8088定义为IO/M(S2) ② 8086的34号引脚定义为BHE/S7,8088定义为SS0/(HIGH)

微机计算机原理课后习题答案《四》 2009-08-16 14:46 第4章作业

1、指出源操作数的寻址方式

⑴ MOV BX,2000H ;立即数寻址 ⑵ MOV BX,[2000H];直接寻址 ⑶ MOV BX,[SI] ;寄存器间接寻址 ⑷ MOV BX,[SI+2000H] ;寄存器相对寻址 ⑸ MOV [BX+SI],AL ;寄存器寻址 ⑹ ADD AX,[BX+DI+80] ;基址变址相对寻址 ⑺ MUL BL ;寄存器寻址 ⑻ JMP BX ;段内间接寻址 ⑻ SUB AX, BX ;寄存器寻址 ⑼ IN AL,DX ;端口间接寻址

⑽ INC WORD PTR [BP+10H] ;寄存器相对寻址 ⑾ MOV CL,LENGTH VAR ;立即数寻址 ⑿ MOV BL,OFFSET VAR1 ;立即数寻址 2、指出下列指令是否正确

(1) MOV DS,0100H;错误。源操作数是立即数时,目的操作数不能是段寄存器 (2) MOV BP,AL;错误。操作数类型不一致 (3) XCHG AH,AL ;正确。

(4) OUT 310H,AL;错误。端口直接寻址的范围应在0~FFH之间 (5) MOV BX,[BX] ;正确。

(6) MOV ES:[BX+DI] ,AX ;正确。

(7) MOV AX,[SI+DI] ;错误。存储器寻址中有效地址不能由两个变址寄存器组成 (8) MOV SS:[BX+SI+100H],BX ;正确。 (9) AND AX,BL ;错误。操作数类型不一致 (10) MOV DX,DS:[BP] ;正确

(11) ADD [SI],20H ;错误,目的操作数类型不明确。 (12) MOV 30H,AL ;错误,目的操作数不能为立即数 (13) PUSH 2000H;错误。堆栈指令的操作数不能是立即数

(14) MOV [SI],[2000H];错误。两个操作数不能同时为存储器操作数 (15) MOV SI,AL ;错误。操作数类型不一致 (16) ADD [2000H],20H; 错误,目的操作数类型不明确 (17) MOV CS,AX;错误,目的操作数不能为代码段寄存器 (18) INC [DI] ;错误,目的操作数类型不明确

(19) OUT BX,AL;错误。端口间接寻址的寄存器只能是DX寄存器 (20) SHL BX,3 ;错误。移位次数大于1时应该用CL寄存器 (21) XCHG CX,DS ;错误。交换指令中不能出现段寄存器 (22) POP AL ;错误。堆栈指令的操作数只能是字操作数(即16位操作数) 3. 写出下列指令中存储器操作数物理地址的计算表达式: 1)MOV AL, [DI] (DS)×10H + ( DI )

(2)MOV AX, [BX+SI] (DS)×10H + ( BX ) + (SI) (3) MOV 5[BX+DI],AL (DS)×10H + ( BX ) + (DI) + 5 (4)ADD AL, ES:[BX] (ES)×10H + ( BX ) 5) SUB AX, [1000H] (DS)×10H + 1000H

(6)ADC AX, [BX+DI+2000H (DS)×10H+(BX)+(DI)+2000H

(7) MOV CX, [BP+SI] (SS)×10H + ( BP ) + (SI) (8)INC BYTE PTR[DI] (DS)×10H + ( DI ) 4. 若(DS)=3000H,(BX)=2000H,(SI)=0100H,

(ES)=4000H,计算下列各指令中存储器操作数的物理地址。 1)MOV [BX],AL

(DS)×10H + ( BX ) = 32000H

(2)ADD AL, [BX+SI+1000H]

(DS)×10H + ( BX ) + (SI)+1000H = 33100H (3)MOV AL,[BX+SI] (DS)×10H + ( BX ) + (SI) = 32100H

(4)SUB AL, ES:[BX] (ES)×10H + ( BX ) = 42000H

5. 若(CS)=E000H,说明代码段可寻址物理存储空间的范围。 代码段物理地址为:(CS):(IP) 所以可寻址物理地址范围为:

(CS)×10H+(IP),其中IP的为16位寄存器,取值范围为: 0000H~0FFFFH

所以有寻址范围为: 0E0000H~0EFFFFH

6. 设(SP)=2000H,(AX)=3000H,(BX)=5000H,问执行下面程序段后: PUSH AX PUSH BX POP AX

(SP)=1FFEH,(AX)=5000H, (BX)=5000H

7、试比较SUB AL,09H与CMP AL,09H这两条指令的异同。若(AL)=08H,分别执行上述两条指令后,(AL)=?,CF=?,OF=0,ZF=?

(1) 相同点:两条指令都能完成(AL)-09H的功能,并且都影响六个状态标志位; 不同点:SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。 (2) ① (AL)=FFH, ② (AL)=08H, CF=1,OF=0,ZF=0 8、分别执行下列指令,试求AL的内容及各状态标志位的状态。 (1) MOV AL,19H ;

ADD AL,61H ;(AL)=7AH

OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0

(2) MOV AL,19H ; SUB AL,61 ;(AL)=0DCH

OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1 MOV AL,19H ; SUB AL,61H ;(AL)=0B8H

OF=0 SF=1 ZF=0 AF=0 PF=1 CF=1 (3) MOV AL,5DH ;

ADD AL,0C6H ;(AL)=23H OF=0 SF=0 ZF=0 AF=1 PF=0 CF=1 (4) MOV AL,7EH ; SUB AL,95H ;(AL)=0E9H

OF=1 SF=1 ZF=0 AF=0 PF=0 CF=1 9. 选用最少的指令,实现下述要求的功能。 1)AH的高4位清0

AND AH,0FH (2)AL的高4位取反

XOR AL, 0F0H (3)AL的高4位移到低4位,高4位清0 MOV CL,4 SHR AL,CL (4)AH的低4位移到高4位,低4位清0 MOV CL,4 SHL AL,CL

11. 设初值(AX)=0119H,执行下列程序段后(AX)=? MOV CH,AH

ADD AL,AH (AX)=011AH

DAA (AX)=0120H 压缩型BCD码调整 XCHG AL,CH (AL)=01H ADC AL,34H (AX)=0135H

DAA (AX)=0135H MOV AH,AL (AH)=35H MOV AL,CH (AL)=20H 结果:(AX)=3520H

12. 指出下列程序段的功能 1)

MOV CX,10 CLD

LEA SI,First LEA DI,Second REP MOVSB

功能:将First开始的10个字节数据复制到Second开始的内存中 2)

CLD

LEA DI,[0404H] MOV CX,0080H XOR AX,AX REP STOSW

功能:将0404H开始的80H个字(100H个字节)的内存填充0 16. 已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H, (BX)=0024H,(CX)=5678H,(BP)=0024H,

(SI)=0012H, (DI)=0032H, (09226H)=00F6H,(09228H)=1E40H,(1EAF6H)=091DH,试求单独执行下列指令后的结果。

1)MOV CL,20H[BX][SI] ;(CL)= 0F6H (2)MOV [BP][DI],CX ;(1E4F6H)= 56F6H (3)LEA BX,20H[BX][SI] ;(BX)= 0056H MOV AX,2[BX] ;(AX)= 1E40H

(4)LDS SI,[BX][DI] ;

MOV [SI],BX ; ( ( SI ) ) = 0024H (5)XCHG CX,32H[BX] XCHG 20H[BX][SI],AX ;(AX)= 5678H;(09226H)= 1234H 20. 设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH, 当执行:

CALL 2000:0094H 后,试指出(IP)、(CS)、(SP)、((SP))、 ((SP)+1)、((SP)+2)和((SP)+3)的内容。 (IP) = 0094H (CS)= 2000H

(SP)= 0F178H 压4个字节进栈,- 4H ((SP)) = 8FH ((SP)+1)= 3DH ((SP)+2)= 50H ((SP)+3)= 40H

微机计算机原理课后习题答案《五》 2009-08-16 14:55 第五章

2.PLENTH=16H, 以上3个变量所占的存储器的字节数。 3.L=6

4. 假设程序中的数据定义如下:

LNAME DB 1,2,3,?123? ADDRESS DB 30 DUP(?) CTTY DB 15 DUP(?) CODE_LIST DB 1,7,8,3,2

1)用一条MOV指令将LNAME的偏移地址放入BX

(2)用一条指令将CODE_LIST的头两个字节的内容放入SI

(3)写一条伪指令定义符使CODE_LENGTH的值等于CODE_LIST域的实际长度。 答案(1)MOV BX, OFFSET LNAME (2)MOV SI,WORD PTR CODE_LIST (3)CODE_LENGTH EQU $ - CODE_LIST 5. 对于下面的数据定义,试说明三条MOV指令的执行结果。 TABLEA DW 10 DUP(?) TABLEB DB 10 DUP(?) TABLEC DB ?123?

MOV AX,LENGTH TABLEA ;(AX)= 10 MOV BL,LENGTH TABLEB ;(BL)= 10 MOV CL,LENGTH TABLEC ;(CL)= 1 6.(AX)=1,(AX)=2,(CX)=20,(DX)=40,(CX)=1

11. 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同,则显示“MATCH”,若不相同则显示“NOMATCH”。 DATA SEGMENT

STRING1 DB 'ABCDEFGHIJKLMNO' STRING2 DB 'ABCDEFDDDDDD' MSG1 DB 'MATCH','$' MSG2 DB 'NOMATCH','$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE, DS:DATA START:

MOV AX, DATA

MOV DS, AX MOV ES, AX

LEA SI, STRING1 LEA DI, STRING2

MOV CX, 15 CLD

REPE CMPSB

JZ MATCH ;相等 LEA DX, MSG2 JMP DISPLAY MATCH:

LEA DX, MSG1 DISPLAY:

MOV AH, 09H INT 21H MOV AX, 4C00H INT 21H CODE ENDS END START

16. 数据段中已定义了一个有n个字数据的数组M,试编写程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。 DATA SEGMENT n EQU 6

M DW -66, 33, 55, -89, 28, 311 DW ? DB ? DATA ENDS

START:

MOV AX, DATA MOV DS, AX LEA BX, M MOV CX, n MOV SI, 0 XOR AX, AX

MOV [BX][2*n], AX NEXT:

MOV AX, [BX][SI] OR AX, AX JNS L1 NEG AX L1:

CMP [BX][2*n], AX JG L2

MOV [BX][2*n], AX MOV [BX][2*(n+1)], SI L2:

INC SI INC SI DEC CX JNZ NEXT

18. 已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一程序,把既在A中又在B中出现的整数存放于数组C中。 DATA SEGMENT

A DW 11, -22, 33, 88, -55, -67, 306, 39, 55, -90 DW 28, 311, 65, 887, 911

B DW 18, 25, 31, 88, -55, -65, 188, 30, -15, 77 DW 252, 54, 102, 201, 87, -94, -22, -33, 911, 306 C DW 15 DUP(0) DATA ENDS START:

MOV AX, DATA MOV DS, AX MOV ES, AX LEA SI, A LEA BX, C NEXT:

LEA DI, B CLD

MOV CX, 20 MOV AX, [SI] REPNE SCASW JNZ NOTFOND MOV [BX], AX INC BX INC BX NOTFOND: INC SI INC SI CMP SI,30 JL NEXT

23. 编写程序,将字节变量BVAR中的无符号二进制数(0~FFH)转换为BCD数,在屏幕上显示结果。 DATA SEGMENT

BVAR DB 165

BCD DB 3 DUP(0) ;转换后以3位ASCII码保存 DB '$'

DATA ENDS START:

MOV AX, DATA MOV DS, AX MOV ES, AX

MOV AL, BVAR LEA BX, BCD MOV DI, 2 MOV CL, 10 NEXT:

MOV AH, 0 DIV CL

OR AH, 30H ;余数转换为ASCII码 MOV [BX+DI], AH DEC DI

CMP AL, 0 JG NEXT LEA DX, BCD MOV AH, 09H

INT 21H ;显示结果 第六章

2. 64片10片4片, 128片11片4片,16片11片4片,2片14片2片

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

Top