微机原理-部分作业参考答案

本文详细解答了关于8086微处理器的作业问题,涵盖8086总线接口单元、执行单元的组成与功能,以及8086工作模式的特点。讨论了地址线锁存、物理地址计算、中断处理、堆栈变化、指令系统等多个方面,还解析了汇编语言程序设计,包括逻辑运算、字符串处理、码制转换和子程序设计。此外,介绍了定时器/计数器8253的内部结构、工作方式和应用实例。
摘要由CSDN通过智能技术生成

微机原理与接口技术-部分作业参考答案梳理

  • 作业 

2、8086的总线接口单元由那几部分组成,有什么功能?

【答】8086的总线接口单元主要由下面几部分组成:

(1)段寄存器,4个段寄存器CS/DS/ES/SS,用于保存各段地址;为分段寻址定位段的位置。

(2)地址加法器,一个20位地址加法器,用于形成20位物理地址;将分段地址转换为物 理地址。

(3)指令指针寄存器,一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址;  存储代码段内的偏移,与CS一起构成取指所需的程序计数器。

 (4)存储器接口,用于内总线与外总线的连接;通过此接口进行取指和存取操作数。

 (5)指令流字节队列,用于保存指令。

3、8086的执行单元由那几部分组成,有什么功能?

【答】8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄存器组。

(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。

    (2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。

(3)标志寄存器,使用9位,标志分两类。其中状态标志6位,存放算数逻辑单元ALU运算结果特征;控制标志3位,控制8086的3种特定操作。

(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。

8、8086形成三总线时,为什么要对部分地址线进行锁存?什么信号控制锁存?

【答】 为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数据总线上。而在8086CPU中AD0~AD15总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器中,而用后一部分周期传送数据。8086CPU中是通过CPU送出的ALE高电平信号来控制锁存的。

12、在8086中,逻辑地址FFFFH:0001H、00A2H:37F0H和B800H:173FH的物理地址分别是多少?

【答】(1)FFFFH*16+0001H=FFFF0H+0001H=FFFF1H (物理地址=段地址*10H(=16)+偏移地址。

      (2)00A20+37F0=4210H

      (3)B8000+173F=B973FH

15、8086工作在最小模式和最大模式的主要特点是什么?有何区别?

【答】最小模式接+5V,构成小规模的应用系统,只有8086一个微处理器,所有的总线 控制信号均为8086产生,系统中的总线控制逻辑电路,减少到最小; 不需总线控制器8288;适用于单一处理机系统。

     最大模式接地,用于大型(中型)8086/8088系统中,系统总是包含有两个或多个微  处理器,其中一个主处理器就是8086或8088。其它的处理器称协处理器,协助主处理器工作,需要总线控制器来变换和组合控制信号, 需总线控制器8288; 适用于多处理机系统。

17、8086启动时有何特征,如何寻找8086系统的启动程序

【答】在8088/8086系统中,CPU启动后,处理器的标志寄存器、指令指针寄存器IP、段寄存器DS、SS、ES和指令队列都被清零,但是代码段寄存器CS被设置为FFFFH。因为IP=0000,而CS=FFFFH,所以,8088/8086将从地址FFFF0H开始执行指令。

通常,在安排内存区域时,将高地址区作为只读存储区,而且在FFFF0H单元开始的几个单  元中放入一条无条件转移指令,转到一个特定的程序中,这个程序往往实现系统初始化、    引导监控程序或者引导操作系统等功能,这样的程序叫做引导和装配程序

第三章作业答案梳理

 8086指令系统

3.5   设(IP= 3D8F H,(CS= 4050H(SP)= 0F17C H,当执行CALL 20000094H后,试求出 IPCSSP、[SP]、[SP1][SP2 和[SP3]的内容?

【答】(IP)=0094H ,( CS)=2000H  ,(SP)=F178H 参见P76页,CALL指令的(2)段间调用 的例子

 [SP]=8FH ,  [SP+1]=3DH ,  [SP+2]=50H,  [SP+3]=40H

3.7    分别用一条语句实现下述指明的功能

    (1)栈顶内容弹出送字变量DI。                               (  POP DI

  (2)双字变量AYD存放的地址指针送ES和SI。   (  LES   SI AYD  )

  (3)不允许中断即关中断。                                                 (  CLI  )

  (4)子程序返回调用程序。                                                 (  RET

  (5)AX的内容加1,要求不影响CF。                     (  INC   AX  )

(6)BX的内容加1,要求影响所有标志位。                  (  ADD            BX, 1

(7)若操作结果为零转向标号GOON。                           (  JZ                GOON  )

3.8  80868088用什么途径来更新CSIP的值

【答】执行CALL、JMP、INT指令,可以改变CS和IP中的值,即改变程序走向。  

3.9  字节扩展指令和字扩展指令用在什么场合?举例说明。 

【答】需要对带符号数字节扩展为时,要预先执行CBW指令。需要对带符号数字扩展为双字时,要预先执行CWD。 

例:求-503/267=?,将商存1000H单元.

MOV    AX,-503

MOV    BX,267

CWD

IDIV

MOV    [1000H],AX  

HLT

3.12 8086状态标志寄存器中,作为控制用的标志位有( 3 个,其中,不可用指令操作的是(DF IF TF

3.13 设当前的SP=1000H,执行PUSHF指令后,SP=0FFE H),若改为执行INT  20H指令后,则SP= 0FFA H

【答】执行PUSHF指令后,SP=(0FFE H)。执行INT  20H指令后,则SP=( 0FFA H)。

3.14 设当前SS=2010HSP=FE00HBX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?

【答】当前栈顶指针(SP)=FE00H,物理地址=20100H+FE00H=2FF00H                

当执行PUSH BX 指令后,栈顶指针(SP)=FE00-2=FDFEH,栈顶物理地址2FEFEH,栈顶2个字节的内容分别57H,34H。  

3.15 HLT指令用在什么场合?如CPU 在执行HLT 指令时遇到硬件中断并返回后,以下应执行哪条指令?

【答】HLT用在使CPU处于暂停状态而等待硬件中断的场合。
   在执行HLT指令遇到硬件中断并返回后将执行HLT后面的一条指令。

3.16 为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据?

【答】増量指令或减量指令不影响进位标志CF。

3.17 用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体讲,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?

【答】在BCD码中,采用4位二进制数对一个十进制数的编码,只允许0-9这10个数字出现,但CPU运算结果一般会超过此范围,因此要进行十进制调整。进行加、减法或乘法运算时,调整指令必须紧跟在算术指令后面,在进行除法运算时,调整指令放在除法指令之

3.18 中断指令执行时,堆栈的内容有什么变化?中断处理子程序的人口地址是怎样得到的?

【答】中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且SP减2。中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单元两个字节为中断入口地址的偏移地址。

3.19 中断返回指令IRET和普通子程序返回指令RET 在执行时,具体操作内容什么不同?

【答】IRET从堆栈中依次弹出断点处指令指针IP、代码段CS内容与标志寄存器的值,而RET从堆栈中依次弹出断点处指令指针IP值、代码段CS内容,不需要弹出标志寄存器的值。

3.20 将存放在0A00H单元和0A02H单元的两个无符号数相乘,结果存放在地址为0A04H开始的单元中。

【答】参考程序:

MOV         AL,[0A00H]

MOV         BL,[0A02H]

MUL         BL

MOV         [0A04H],AX   ;  MOV        [0A06H],DX ;

3.21 编程序将AX中数,最高位保持不变,其余全部左移4位。

【答】参考程序:

MOV         BX, AX

AND BX , 8000H

MOV         CL, 4

SHL          AX, CL

AND AX,7FFFH

OR             AX, BX

3.22 0400H单元中的数,4位置零,4位保持不变。

【答】参考程序:

MOV         AL, [0400H]

AND AL, 0F0H

MOV       [0400H], AL

3.23 BX中的数,对高位字节求反,低位字节保持不变。

【答】参考程序:NOT             BH      或者         XOR  BX, FF00H

3.24 检测Bx中第13(D13),0,AL0,1,AL1

【答】参考程序:

TEST        BX,0010 0000 0000 0000B

JZ              ZERO

MOV         AL,01H

HLT

ZERO:      MOV         AL,0

HLT

3.25 利用字串操作指令,1000H~10FFH单元全部清零。

【答】参考程序:

CLD

MOV         DI,1000H

MOV         CX,100H

MOV         AL,0

REP           STOSB

3.26 1000H开始,存放有200个字节,要查出字符#(ASCII码为23H), 把存放第一个#的单元地址送入BX中。 

【答】参考程序:  

CLD

MOV        DI,1000H

MOV        CX,200

MOV        DX,CX

MOV        AL,23H

REPNZ    SCASB

JZ              FOUND  

JMP     NOFOUND 

FOUND:   DEC         DI    ;上下对应

MOV        BX,DI

NOFOUND:      HLT

3.27 编程计算((X+Y)*10)+Z)/XXYZ都是16位无符号数,结果存在RESULT开始的单元。

【答】参考程序:

MOV          AX,X

ADD          AX,Y

MOV        BX,0AH

MUL         BX

ADD          AX,Z

ADC          DX,0H

MOV         BX,X  

DIV          BX  

MOV         RESULT,AX

MOV          RESULT+2,DX

HLT

3.28 用简单指令编程求-3/2=?,将商存DL,余数存DH单元。TD调试后,写出DL,DH的内容。

【答】参考程序:

MOV                  AL,-3 

CBW                          

             MOV           BL,2         

IDIV                  BL

MOV                 DL,AL    

MOV                  DH,AH 

HLT      

习题四 汇编语言程序设计

主要内容:汇编语言程序设计。主要介绍汇编语言程序的设计方法与编程原理,重点掌握算术运算程序、字符串处理程序、码制转换程序、子程序设计程序、常用DOS和BIOS功能调用程序、汇编语言常用伪指令。

4.1  分析执行下列指令序列后的结果:

1                     MOV         AX1234H

                    MOV         BX00FFH

                    AND AXBX                                      

【答】(AX)=0034H

2                     MOV         AL01010101B

                            AND AL

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间看得见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值