微机原理、汇编语⾔与接⼝技术周杰英张萍习题答案汇总第1章绪论
习题与参考答案(部分)
1.把下列⼆进制数转换成⼗进制数、⼗六进制数及BCD码形式。
(1)10110010B =
(2)01011101.101B =
解:
(1) 10110010B = 178D = B2H = (0001 0111 1000)BCD (2) 01011101.101B = 93.625D = 5D.AH
= (1001 0011.0110 0010 0101)BCD
2.把下列⼗进制数转换成⼆进制数。
(1)100D =
(2)1000D =
(3)67.21D =
解:
(1)100D = 01100100B
(2) 1000D = 1111101000B
(3) 67.21D = 1000011.0011B
3.把下列⼗六进制数转换成⼗进制数、⼆进制数。
(1)2B5H =
(2)4CD.A5H =
解:
(1)2B5H = 693D = 0010 1011 0101B
(2)4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B
4.计算下列各式。
(1)A7H+B8H =
(2)E4H-A6H =
解:
(1) A7H+B8H = 15FH
(2) E4H-A6H = 3EH
5.写出下列⼗进制数的原码、反码和补码。
(1) +89
(2) -37
解:
(1) [+89 ] 原码、反码和补码为: 01011001B
(2) [-37] 原码 = 10100101 B
[-37] 反码 = 11011010 B
[-37] 补码 = 11011011 B
6.求下列⽤⼆进制补码表⽰的⼗进制数
(1)(01001101)补 =
(2)(10110101)补 =
解:
(1)(01001101)补 = 77D
(2)(10110101)补 = -75D
7.请⽤8位⼆进制数写出下列字符带奇校验的ASCII码。
(1)C: 1000011 (2)O: 1001111
(3)M: 1001101 (4)P: 1010000
解:
(1)C:0 1000011 (2)O: 0 1001111
(3)M:1 1001101 (4)P: 1 1010000
8.请⽤8位⼆进制数写出下列字符带偶校验的ASCII码。
(1)+:0101011 (2)=: 0111101
(3)#:0100011 (4)>: 0111110
解:
(1)+:0 0101011 (2)=: 1 0111101
(3)#:1 0100011 (4)>: 1 0111110
9.叙述CPU 中PC的作⽤。
解:PC是CPU中的程序计数器,其作⽤是提供要执⾏指令的地址。
第2章微处理器的结构
习题与参考答案
汇编指令汇总1.8086/8088 CPU 由哪两⼤部分组成?请分别叙述它们的功能。
解:8086/8088 CPU均由两个独⽴的逻辑单元组成,⼀个称为总线接⼝单元BIU(Bus Interface Unit),另⼀个称为执⾏单元EU(Execution Unit)。
总线接⼝单元BIU取指令时,从存储器指定地址取出指令送⼊指令队列排队;执⾏指令时,根据EU命令对指定存储器单元或I/O 端⼝存取数据。
执⾏单元EU任务是执⾏指令,进⾏全部算术逻辑运算、完全偏移地址的计算,向总线接⼝单元BIU提供指令执⾏结果的数据和偏移地址,并对通⽤寄存器和标志寄存器进⾏管理。
2.8086/8088与传统的计算机相⽐在执⾏指令⽅⾯有什么不同?这
样的设计思想有什么优点?
解:总线接⼝部分和执⾏部分是分开的,每当EU执⾏⼀条指令时,造成指令队列空出2个或空出⼀个指令字节时,BIU马上从内存中取出下⾯⼀条或⼏条指令,以添满他的指令队列。这样,⼀般
情况下,CPU在执⾏完⼀条指令后,便可马上执⾏下⼀条指令,不像以往8位CPU那样,执⾏完⼀条指令后,需等待下⼀条指令。
即EU从指令队列中取指令、执⾏指令和BIU补充指令队列的⼯作是同时进⾏的。这样⼤⼤提⾼了CPU利⽤率,降低了系统都对存储器速度的要求。
3.状态标志和控制标志有何不同?8086/8088的状态标志和控制标
志分别有哪些?
解:8086/8088 CPU设⽴了⼀个两字节的标志寄存器,共九个标志。其中标志位O、S、Z、A、P、C是反映前⼀次涉及ALU 操作结果的状态标志,D、I、T是控制CPU操作特征的控制标志。
4.8086/8088 CPU寻址存储器时,什么是物理地址?逻辑地址?它
们之间有何关系?
解:8086/8088系统中每个存储单元都有⼀个物理地址,物理地址就是存储单元的实际地址编码。在CPU与存贮器之间进⾏任何信息交换时,需利⽤物理地址来查所需要的访问的存储单元。
逻辑地址由段地址和偏移地址两部分组成。
逻辑地址的表⽰格式为:段地址:偏移地址。知道了逻辑地址,可以求出它对应的物理地址:物理地址=段地址×10H+偏移地址。
5.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的
物理地址为多少?指向这⼀物理地址的CS值和IP值是唯⼀的吗?
解:根据:物理地址=段地址×10H+偏移地址,指令的物理地址为21F00H。指向这⼀物理地址的CS值和IP值不唯⼀。
6.8086 CPU中BHE信号和A0信号是通过怎样的组合解决存储器和外
设端⼝的读/写的?这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该⽤什么信号区分?怎样区分?
解:若存取⼀个字节的数据,总是⽤⼀个总线周期来完成该操作;
若存取⼀个字,则依该字是规则字还是不规则字需⽤⼀个或两个总线周期来完成。对规则字,只⽤⼀个总线周期来完成16位数据的传送,⽽对于⾮规则字则⽤相邻两个总线周期来完成该字的存储操作,先取其奇地址字节(即数据的低位字节),然后存取偶地址字节。在组成存储系统时,总是偶地址单元的数据通过AD0~AD7传送,⽽奇地址单元的数据通过AD8~AD15传送,即通过总线⾼字节传送。BHE信号和A0信号控制存储器读写见下表:
第3章80x86指令系统
习题与参考答案
1、指出下列指令中操作数的寻址⽅式(8086系统)。
(1) MOV AX,100 (2) MOV AX,[100] (3) MOV DL,[BP+SI] (4) MOV [BX],CX (5) MOV DX,[SI] (6)MOV 1234H[BX],DS (7) MOV [DI+5678H],AL (8) MOV 12[BP][DI],BH
(9) POP CX (10)MOV AX,[BX+SI+10] 解:
2、指出下列指令中操作数的寻址⽅式(80386系统)。
(1) MOV [EBX+12H],AX (2)MOV [EBP+EDI*2],EBX
(3) MOV [EBX*4],BX (4) MOV EDX,[EAX+ESI*8-12H]
解:
3、指出以下指令中,哪些指令是⾮法的,并说明为什么(8086系统)。
(1) PUSH 1234H (2) MOV CS,AX
(3) IN AX, 300 (4) MOV AX,[DX+12]
(5) MOV BX,[BX] (6) MOV DS,1000H
(7) XCHG AL,AL (8) MOV AL,100H
(9) MOV DX,AL (10)LEA BL,[BX+5] (11)LEA DX,BX (12)MOV [1000H],12H (13)ADD AX,DS (14)SUB [0100H],BYTE PTR [0001]
(15)SHL BL,2 (16)SHR CL,CL
(17)MUL AL,BL (18)INT 400
解:(1)⾮法,8086系统不允许PUSH指令的操作数为⽴即数;(2)⾮法,MOV指令中CS不能作为⽬的操作数;
(3)⾮法,端⼝号⼤于0FFH;
(4)⾮法,DX不能出现在中括号[]内;
(5)合法;
(6)⾮法,不能把⽴即数赋给段寄存器;
(7)合法;
(8)⾮法,源操作数⼤于0FFH,不能赋给8位寄存器AL;(9)⾮法,源操作数是8位寄存器,⽬的操作数却是16位寄存器,不匹配;
(10)⾮法,LEA指令得到的是16位偏移量,但⽬的操作数是8位寄存器;
(11)⾮法,LEA指令的源操作数只能是存储器操作数;
(12)⾮法,指令存在歧义,⽆法确定传送的是字节还是字;(13)⾮法,段寄存器不能参与算术运算;
(14)⾮法,源和⽬的寄存器不能同为存储器操作数;
(15)⾮法,在8086系统中,移位次数⼤于1时需要将移位次数存放到CL中;
(16)合法;
(17)⾮法,在8086系统中MUL指令没有双操作数的⽤法;
(18)⾮法,中断类型号⼤于0FFH。
4、指出以下指令中,哪些指令是⾮法的,并说明为什么(80386系统)。
(1) MOV AX,12[EBX][SI*16] (2) RCR EAX,10 (3) PUSH 5678H (4) POP 1000H
(5) MOV [EAX+EAX],EAX (6) MOV AL,[ESP+ESP*2]
(7) MOV BL,[AX+12] (8) IMUL AL,BL,12
解:(1)⾮法,⽐例因⼦只能是1、2、4、8,不能是16;
(2)合法;
(3)合法;
(4)⾮法,POP指令的⽬的操作数不能是⽴即数;
(5)合法;
(6)⾮法,ESP只能作为基址寄存器,不能作为变址寄存器;
(7)⾮法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器;
(8)合法。
5、假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执⾏下⾯的程
序段后,各相关寄存器及堆栈段中的内容。
PUSH AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第⼆字节[SP+1]=?
PUSH BX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第⼆字节[SP+1]=?
POP AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第⼆字节[SP+1]=?
解:(AX)=1234H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第⼆字节[SP+1]=12H (AX)=1234H,(BX)=5678H,(SP)=0FFCH,栈顶字节[SP]=78H,栈顶第⼆字节[SP+1]=56H (AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第⼆字节[SP+1]=12H 6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试
利⽤算术运算指令编写程序段,完成以下各算术运算题。
(1)计算YY←A+B*C,其中A、B、C都是⽆符号数;
(2)计算(AA+BB)/(C-D),商赋给X,余数赋给Y,其中AA、BB、
C、D都是带符号数;
(3)计算YY←(A-B)*C,其中A、B、C都是未组合BCD码。
解:
(1)MOV AL,B
MUL C
ADD AL,A
ADC AH,0
MOV YY,AX
(2)MOV AX,AA
ADD AX,BB
MOV BL,C
SUB BL,D
IDIV BL
MOV X,AL
MOV Y,AH
(3)MOV AL,A
SUB AL,B
AAS
MUL C
AAM
MOV YY, AX
7、利⽤移位指令编写程序段,实现以下运算。
(1)计算AX←AX*10,其中AX为⽆符号数;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论