更新again:微机原理与汇编语言-练习题

本篇博客整理汇编语言课上及课后练习题,如有错误欢迎指正。

目录

第一周作业

某一次课上练习

第7周练习题

 设计题

第8周练习题

第七章作业

 ​编辑

 存储器寻址练习题

 例子1:​编辑

例子2:

​编辑

 例子3:

 例子4:

8253芯片题

例子1:

 例子2

第一周作业

填空题:

  • 中央处理单元CPU由   运算器     控制器    、和    寄存器   三部分组成。
  • 在计算机中,通常运算器和   控制器    是核心部件,合称为中央处理单元CPU。
  • 某CPU的字长为4,假设该CPU执行一次加法运算需要1ns,执行两个double 类型的数(假设double类型的变量占8个字节)相加时需要 16  ns。  

CPU的字长为4,代表字长为4位,需要1ns;8个字节是64位,64/4=16ns。

  • 如果某CPU处理器的频率为100Hz,则该CPU做一次运算需要的时间为____0.01 ___秒。

频率是周期的倒数   1/100s

  • CPU芯片可以与它外部的两类芯片进行交互信息,这两类芯片分别是    内存储器芯片    I/O接口芯片    ;这些芯片之间通过  总线   互相连接。
  • 一条指令的执行包括三个步骤:  取指   、译码、  执行    。其中“取指”指的是把指令从       主存  中取到  CPU      中。
  • 8086CPU内部的AX是一个 16   位寄存器,可以进一步将其分为高8位寄存

     AH    和低8位寄存器   AL     

  • 十进制数65对应的8位二进制数是0100 0001B,十进制数19对应的8位二进制数是    00010011B    ,十进制数49对应的二进制数是    00110001B    
  • 8位二进制数0010 0011B对应的十进制数是35,8位二进制数0101 0001B对应的十进制数是      81D  ,8位二进制数1000 0101B对应的十进制数是    133 D  
  • 十进制数274D对应的十六进制数为___ 112H___;十六进制数3CH对应的十进制数为__60D_ ___。

某一次课上练习

由于没有电子版只有当时手拍图片

答案: D

解析:计算公式为(5*2+2)*10+3=123  DUP就是重复几次

答案:C

解析:16=2^4 1M=2^20 故16M=2^24B

 

 答案:25000H          916H            0A3800H (如果16进制中遇到字母开头需要加上前导0)

计算方法通通为段基址左移一个然后加上偏移量    

 答案:CF=1   OF=0   ZF=0   SF=0

计算过程:1101 1000 1000 0100

                  0100 1001 1000 1000

                ———————————

                10010 0010 0000 1100   (220CH)

CF是进位标志 0-无进位 1-有进位(仅对无符号整数)

OF是溢出标志 1-有溢出  0-无溢出(判断方法1:都看成带符号的数 eg;一个负数加一个正数不可能溢出 判断方法2:观察最高位和次高位的进位是否都有进位 如果是则有溢出)

SF符号标志   1-最高位为1  0-最高位为0(注意SF是最高位不是进位 ;两个位要区分开)

ZF零标志       1-结果为0      0-其他值

答案:存储器寻址   寄存器寻址   立即数寻址 

判断方法很简单 这里不再赘述

7周练习题

  • 某微机具有256M字节的内存空间,其CPU的地址总线应有(  D )条。

A20        B22         C24         D、28

解析:1M=2^20  256=2^8  =>256M=2^28 B  

考察知识点:CPU地址总线根数与内存空间的关系

地址总线含有x根,那么CPU可以访问2^x个内存单元

  • 指令mov al,[3]中,源操作数的寻址方式是(A  )。

A、存储器寻址     B寄存器寻址    C立即数寻址     D接口寻址

考察数据三种寻址方式:区分 立即数寻址 eg:mov ax,332h、寄存器寻址 eg:mov ax,bx、存储器寻址 eg:mov ax,[5] (标志:带有方括号)

  • 若要检查AX寄存器中的D12位是否为1,但不改变其中的值,应该用( A )指令。

A、TEST AX,1000H    B、OR AX,1100H
C、XOR AX,1000H    D、AND AX,1000H

  •  在利用总线对存储器进行访问时,地址信号有效和数据信号有效的时间关系应该是( A )。

A、地址信号较先有效    B、二者同时有效
C、数据信号较先有效    D、同时高电平

先寻地址再传输数据

  •  当 8086 CPU 采样到 READY=0 ,则 CPU 将 ( D )。

A、执行停机指令    B、重新发送地址码
C、执行空操作指令    D、插入等待周期

如果一个总线周期4T时间完成不了一个操作,就会将READY置0 增加一个Tw时间

  •  总线信号分成三组,分别是数据总线、地址总线 和控制总线。
  • CMP CX,1A2CH指令之后是JZ指令,发生转移的条件是CX= 1A2CH ,此时ZF=1 。

零标志位ZF=1,说明运算结果为0,即CX与1A2CH相等

  • 译码方式分为全译码部分译码。 
  • 8086 CPU中用于选择CPU工作模式的引脚是 MN/MX* 。(*代表MX取反)
  • 8086 CPU中用于选择访问对象的引脚是 M/IO* (*代表IO取反)
  • 存储系统中的局部性原理可以从空间局部性时间局部性 两个方面来理解。
  • 8086 CPU的外部中断引脚有 NMI/ 和INTR两个。
  • 8086 CPU执行指令“MOV [SI], DX”时,在其引脚上将产生存储器写总线操作;CPU预取指令时,在其引脚上将产生_存储器读 总线操作
  • 占用总线进行数据传输,一般需要经过总线请求和仲裁、__寻址_ 、数据传送和结束4个阶段。
  • 8086 CPU无等待的总线周期由_4_个T状态组成。
  • 假设当前CS=36A8H,IP=007AH,DS=31A4H。假设IP当前所指向的指令为mov AX,[5],请回答:
  1. CPU取的下条指令的物理地址是多少?

指令段的物理地址=CS+IP(即段基址+偏移量)CS先左移一个位再与IP相加

36A80+007A=36AFAH

      2.取到该指令后,执行该指令时,需要从哪个内存单元开始取两个字节送到AX寄存器中?

内存数据段物理地址=DS+数据偏移量

31A40+5=31A45H

 设计题

设计一个存储器接口电路,其中部分电路给出如下图所示,要求该存储系统的地址范围为0DC000H~0DCFFFH,可增加的器件可以是基本门电路(与门、或门、非门、与非门、或非门),完成74LS138同CS的连接,画出虚线框中门电路。

 摆出地址范围对应位置的数字

DC000H

1101 1100 0000 0000 0000

DCFFFH

1101 1100 1111 1111 1111

故A14 A13 A12=100

由上到下CBA=001 故选中Y1  CS连接Y1

门电路 A19 A18 A17 A16=1101所以需要A17连接一个非门转换为1    最后四个输出为1再连接一个总的非门  因为是低电平有效

像这样画

8周练习题

  • 已知SP=2020H,执行PUSH AX后,SP寄存器的值是(  201EH  )。(此题没有正确选项

A2018H       B、201DH         C2020H        D2022H

解析:PUSH操作 SP-2; POP操作 SP+2

2020H-2=201EH

  • 8086 CPU用(A  )信号下降沿在T1结束时将地址信息锁存在地址锁存器中。

AALE     BREADY      CBHE        DM//

ALE——地址锁存允许,是一个三态、输出、高电平有效的信号。

  • JMP指令或带条件转移指令构成的段内转移中,转移的本质是改变( C )寄存器的值。

AAX          BCS         CIP        DFlag

段内转移改变IP 段间转移改变CS

  • 标志寄存器中控制串传送方向的标志位是( D )。

A、CF     B、SF    C、IF        D、DF

DF是一种控制标志,控制字符串复制的方向

  • 总线信号分成三组,分别是数据总线、_地址总线__和控制总线。
  • 8086 CPU预取指令时,在其引脚上将产生存储器读总线操作;当其执行指令MOV [SI], DX 时,在其引脚上将产生__存储器写__总线操作。(由寄存器写入存储器
  • 占用总线进行数据传输,一般需要经过总线请求和仲裁、__寻址  、数据传送和结束4个阶段。
  • 堆栈操作时,8086 CPU会自动选择  SS  值作为段基值,再加上由SP提供的偏移量形成物理地址。(堆栈段寻址为SS+SP
  • 8086 CPU无等待的总线周期由__4__个T状态组成。
  • 如果某处理器的时钟频率为200MHz,则每个时钟周期T的持续时间为_1/200M___。
  • 逻辑地址0A100H :280EH对应的物理地址是__0A380EH__。
  • 一条指令的执行包括三个步骤:取指、_译码_   _、执行。
  • 某CPU数据线16根,地址线20根,其16-13号引脚分别对应多路复用的AD3-AD0,当前CS=36A8H,IP=007AH,DS=31A4H。假设IP当前所指向的指令为mov DS:[5],AX,当前AX中的值为5A7BH;假设该CPU所连接的总线中的数据总线的宽度是16。回答下列问题:

(1)、在取指对应的总线周期的T1中,16-13号引脚(即A3-A0)的值分别是多少?

取指令对应指令段地址为CS+IP,36A80+0074=36AFAH   由于16-13号引脚正好对应最低四位A3-A0 地址最后一个数为A 改为二进制:1010即分别为所对应A3-A0值

(2)、在取指对应的总线周期中,M/引脚=?引脚=? 引脚=?

M/IO* 为存储器或I/O操作信号  其中I/O信号低电平有效

取值操作是由内存读入CPU中 故M高电平有效,M/IO*=1

RD*为读信号 且低电平有效   故RD*=0

WR*为写信号 且低电平有效  故WR*=1

(3)、在执行指令对应的总线周期的T1中,16-13号引脚(即A3-A0)的值分别是多少?

执行指令对应数据段地址为DS+数据偏移量[5] ,31A40+5=31A45H ,16-13号引脚对应最低位5 改为二进制:0101 即为A3-A0对应的值

(4)、在执行指令对应的总线周期的T2-T4中,16-13号引脚(即D3-D0)的值分别是多少?

传送数据时,直接传数据值5A7BH,16-13号引脚传送最低位B,改为二进制为:1011,对应D3-D0

  • 现有一种存储芯片容量为512×8b,若要用它组成4KB的存储容量,需要多少片这样的存储芯片?每块芯片需要多少根寻址线?而4KB存储系统最少需要多少根寻址线,其中几根用作片选,几根用作片内寻址? (要列出计算公式)

 4x1024x8/512x8=8 8片存储芯片

512=2^9  9根寻址线

4K=2^12 12根寻址线 3个片选 9个片内寻址

第七章作业

 

 答案:(一)存储器读 I/O接口写

(二)dx (因为dx存放有端口号可以送到地址总线上)

(三)al  (al寄存器中存放有数据,故将al的内容送到数据总线上)

(四)I/O接口芯片

(五)数据缓冲  信号变换

(六)独立编址 统一编址

(七)2^20=1M (8086CPU含有20根地址线)

(八)2^16=64K(8086CPU采用独立编址方式,只使用最低16个地址信号)

 

 (二)

 MOV SI,OFFSET BUFFER1
 MOV CX,0
L0:   
    MOV DX,621H 
AGAIN:         
    IN AL,DX    
    AND AL,0000 0100B  
    JZ AGAIN
    

    MOV DX,620H
    in al,dx
    CMP AL,'a'
    JB L1
    CMP AL,'z'
    JA L1
    SUB AL,32  ;是a~z之间的减32

L1:           

​    MOV [SI],al 

    ADD SI,1   
    ADD CX,1   
    CMP CX,1000
    JE OVER
    JMP L0

OVER:        

 存储器寻址练习题

 例子1:

 解答:(1)2KB=2x1024x8b   故2x1024x8)/(1024x8)=2片

(2)1024=2^10   故需要10根地址线

(3)2K=2^11   故需要11根地址线   其中1个片选 10个片内寻址

例子2:

解答:(1)(2x1024x8)/(1024x4)=4片  

(2)1024=2^10  故需要10根地址线 

(3)2K=2^11  故需要11根地址线寻址 其中1根做片选(每2片并一块看成1组),10根片内寻址

 例子3:

解答:红箭头指示的地方 代表CS片选Y0低电平有效即A18 A17对应 0 0

A19 A18 A17 A 16 A15.....A0 

0     0     0      0      0000  0000 0000 0000  最小范围

0     0     0      1      1111  1111  1111  1111   最大范围

故红箭头所指范围为:00000H——1FFFFH

绿箭头同理  只不过A18 A17片选Y3有效  对应1 1 剩下的位摆出来地址范围(最小是0 最大是1)即可

 例子4:

 Y0对应的片选信号有效   A11 A10=0 0固定下来两位

摆出来地址范围:

A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0    0       0    0   0    0  0   0   0   0   0   0

0    0       1    1   1    1   1   1   1   1   1   1

即000H——3FFH

另外再分析一下这道题:1Kx4的芯片用了八片 组成了 4KB的存储系统 

其中 12根用作地址线 (4K=2^12) 2个片选(用来选八组芯片) 10个片内寻址   

8253芯片题

例子1:

 计时器8253-5通道0按方式3(方波发生器)工作,时钟CLK0的频率为1MHz,要求输出方波的频率为2000Hz,此时写入的计数初值应为多少?输出方波的“1”和“0”各占多少时间。假设通道0采用二进制方式计数,写出初始化程序段。8253-5的端口为400H,401H,402H,403H。

 解答:(1)初值计算方法:频率/频率 或者 周期/周期

1M=10^6  10^6/2000=500

(2)250x1/(10^6)=250x10^-6 s

(3)题目改成二进制 不考十进制

mov dx,403h  ;控制端口

mov al,00111110B ;写入控制字

out  dx,al

mov ax,500  ;写入初值

mov dx,400h  ;计数器0

out dx,al

mov al,ah

out dx,al

 例子2

 级联方式示意图:

 解答:计数器0的初值计算为  1000/1=1000

计数器1的初值为 (4+1)/(1)=5

Mov dx,803h

Mov al,00110100b

Out dx,al

Mov ax,1000

Mov dx,800h;0号计数器

Out dx,al

Mov al,ah

Out dx,al

Mov dx,803h

Mov al,01010100b

Out dx,al

Mov al,5

Mov dx,801h;1号计数器

Out dx,al

  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

飞飞鱼_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值