微机原理习题解答.pdf

上传人:深夜****等你... 文档编号:75948724 上传时间:2023-03-06 格式:PDF 页数:44 大小:1.33MB
返回 下载 相关 举报
微机原理习题解答.pdf_第1页
第1页 / 共44页
微机原理习题解答.pdf_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《微机原理习题解答.pdf》由会员分享,可在线阅读,更多相关《微机原理习题解答.pdf(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 1 章 习题和解答 15.将下列十进制数分别转化为二进制数、十六进制数和 BCD 码。(1)15.32=(0000 1111.0101 0001)2=(0F.51)16=(0001 0101.0011 0010)BCD(2)325.16=(0001 0100 0101.0010 1000)2=(145.28)16=(001 1 0010 0101.0001 0110)BCD(3)68.31=(0100 0100.0100 1111)2=(44.4F)16=(01 1 0 1000.0011 0001)BCD(4)214.126=(1101 0110.0010 0000)2=(0D 6.20

2、)16=(0010 0001 0100.0001 0010 0110)BCD 16.将下列二进制数分别转化为十进制数和十六进制数。(1)10110101=181=0B5H(2)11001011=203=0CBH(3)10101.1001=21.5625=15.9 H(4)101101.0101=45.3125=2D.5H 17.将下列十六进制数分别转化为二进制数、十进制数。(1)FAH=1111 1010B=250(2)12B8H=0001 0010 1011 1000B=4792 5A8.62H=0101 1010 1000.0110 0010B=1448.3828125(4)2DF.2H=

3、0010 1101 1111.0010B=735.125 18.若 X=-107,Y=+74 按 8 位二进制可写出:。X补=95H,Y补=4AH,X+Y 补=0DFH,X-Y补=4BH 19.X 34AH,Y=8CH 问:有三位和两位十六进制数 X 和 Y,(1)若 X,Y 是纯数(无符号数),贝心 X+Y=3D6H X-Y=2BEH(2)若 X,Y 是有符号数,贝 9:X+Y=2D6 H;X-Y=3BEH 20.已知 X=85,Y=76(均为十进制数),求-85补,-76补。并利用补码的加、减 法运算规则计算X-Y补,-X+Y补,-X-Y补。结果的各机器数及其真值请用十六 进制表示,并由运

4、算过程中的标志位 OF 判断结果是否溢出。答:X补=85补=55H,Y补=76补=4CH,-X补=-85补=0ABH,-Y补=-76 补=0B4H X-Y补=X补+-Y补=55H+B4H=09H,OF=0-X+Y补=-X补+Y补二 ABH+4CH=0F7H,OF=0-X-Y补=-X补+-Y补=ABH+B4H=5FH,OF=1 21.(1)设X补=10101010B,则1/2X补=1/2X补=11010101B(2)设X补=11010100B,贝 y-1/4X 补二1/4X 补补二11110101补=00001011B 第 2 章 习题和解答 1.8086 是多少位的微处理器?为什么?答:808

5、6 是高性能的第三代微处理器,是 Intel 系列的 1 6 位微处理器。2.EU 与 BIU 各自的功能是什么?如何协同工作?答:EU 其主要功能是执行命令。BIU 其主要功能是负责完成 CPU 与存储器或 I/O 设 备之间的数据传送。总线接口部件 BIU 和执行部件 EU 并不是同步工作的,两者的动作管理遵循如 下原贝:每当 8086 的指令队列中有 2 个空字节,BIU 就会自动把指令取到指令队列中。而 同时EU 从指令队列取出一条指令,并用几个时钟周期去分析、执行指令。当指令 队列已满,而且 EU 对 BIU 又无总线访问请求时,BIU 便进入空闲状态。3.8086/8088 微处理

6、器内部有那些寄存器,它们的主要作用是什么?答:8086CPL 内有 14 个 16 位的寄存器。其中有 4 个 16 位通用寄存器 AX BX CX DX,2 个 16 位指针寄存器 SP、BP,2 个 16 位变址寄存器 SI、DI,4 个 16 位段寄存 器 CS、DS、SS、ES,1 个 16 位指令指针寄存器 IP 及 1 个 16 位标志寄存器 FLAGS。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。4.8086 对存储器的管理为什么采用分段的办法?答:8086 CPU 有 20 位地址总线,它可寻址的存储空间为 1MB 而 8086 指令给出的 地址编码只有

7、 16 位,指令指针和变址寄存器也都是 16 位的,所以 CPU 不能直接寻 址 1 MB 空间,为此采用分段管理。5.在 8086 中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。答:逻辑地址=物理地址:偏移地址;偏移地址=相对于段起始地址的距离;物理地址二段地址*10H+偏移地址 6.给定一个存放数据的内存单元的偏移地址是 20C0H(DS)=0C00EH 求出该内存 单元的物理地址。答:物理地址二段地址*10H+偏移地址=0C00E0H+20C0H=0C21A0H 7.8086/8088 为什么采用地址/数据引线复用技术?答:8086/8088 CPU 具有 40 条引脚,采用

8、分时复用地址数据总线,从而使 8086/8088 CPU 用 40 条引脚实现 20 位地址、16 位数据、控制信号及状态信号的传输。8.8086 与 8088 的主要区别是什么?答:8086 有 16 位数据线,8088 有 8 位数据线。9.怎样确定 8086 的最大或最小工作模式?引脚固定接+5V 时,CPU 处于最小模式下,引脚固定接地时,CPU 处 于最大模式下。10.8086 被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?答:复位信号输入之后,CPU 结束当前操作,并对处理器的标志寄存器、答:8088/8086CPU 的 IP、DS、SS ES 寄存器及指令队列进

9、行清零操作,而将 CS 设置为 OFFFFH 11.8086 基本总线周期是如何组成的?各状态中完成什么基本操作?答:一个基本的总线周期由 4 个 T 状态组成,我们分别称为 TI-T44 个状态,在每 个 T 状态下,CPU 完成不同的动作。Ti状态:根据 IO/M 确定对存贮器或 I/O 操作,20 位地址 AA9 信号有效,地址 锁存信号 ALE 有效,给出 DT/R 信号控制 8286 数据传输方向。T2状态:高四位地址/状态线送出状态信息 SS,低 16 位地址/数据线浮空,为 下面传送数据准备;WR 或 RD 有效,表示要对存贮器/I/O 端口进行读或写;有效,使得总线收发器(驱动

10、器)可以传输数T3状态:从存贮器或者 I/O 端口读出的数据送上数据总线(通过)0 Tw 状态:若存贮器或外设速度较慢,不能及时送上数据的话,则通过 通知 CPU,CPU 在READY 线 的前沿(即 结束末的下降沿)检测 READY 若发现 READY 结 束 后 自 动 插入 1 个 或 几个 自动脱离(或)的交界处(下降沿),采集数据,使各控制及状态线进入无效。13.8086 中断分哪两类?8086 可处理多少种中断?=0,则在 进入 T4 状 态:在 与 答:中断共分为两类:硬件中断和软件中断,8086 可处理 256 种中断。14.8086 可屏蔽中断请求输入线是什么?“可屏蔽”的涵

11、义是什么?答:硬件中断又可分为两类:可屏蔽中断和不可屏蔽中断。不可屏蔽中断:由 NMI 引脚引入,它不受中断允许标志 IF 的影响,每个系统中仅允许有一个,都是用 来处理紧急情况的,如掉电处理。这种中断一旦发生,系统会立即响应;可屏蔽中 断:由 INTR引脚引入,它受中断允许标志 IF 的影响,也就是说,只有当 IF=1 时,可屏蔽中断才能进入,反之则不允许进入。15.中断向量表的功能是什么?已知中断类型码分别是 84H 和 OFAH 它们的中断向 量应放在中断向量表的什么位置?答:中断向量表存放的是各中断程序的入口地址即 1 6 位偏移地址和 1 6 位段地址,只要给出中断类型码,可以算出中

12、断程序在中断向量表的什么位置:中断向量表地址=中断类型码*4 中断向量表地址 1=84H*4=21OH 中断向量表地址 2=OFAH*4=3E8H 第 3 章 习题和解答 1.简要分析 8O86 的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻 址和寻址方式的含义是什么?8086 指令系统有哪些寻址方式?答:指令由操作码和操作数两部分组成,操作码表示计算机执行某种指令功能,操 作数表示操作中所需要的数据或者数据所在存储单元的地址。寻址方式是寻找操作数或操作数地址的方式8086 提供了七种寻址方式:立即寻址、寄存器寻址、直接寻址、寄存器间接 寻址、相对寄存器寻址、基址变址寻址和相对基址变

13、址寻址方式 2.设(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量 VAL 的偏移地址为 0050H,请指出下列指令的源操作数字段是什么 寻址方式?它的物理地址是多少?(1)MOV AX,21H 立即寻址 物理地址无(2)MOV AX,BX 寄存器寻址 物理地址无 (3)MOV AX,1000H 直接寻址 物理地址=2000H*10H+1000H=21000H (4)MOV AX,VAL 直接寻址 物理地址=2000H*10H+0050H=20050H (5)MOV AX,BX 寄存器间接寻址 物理地址

14、=2000H*10H+0100H=20100H (6)MOV AX,ES:BX 寄存器间接寻址 物理地址=2100H*10H+0100H=21100H (7)MOV AX,BP 寄存器间接寻址 物理地址=1500H*10H+0010H=15010H (8)MOV AX,SI 寄存器间接寻址 物理地址 MOV AX,BX 寄存器间接寻址 =2000H*10H+00A0H=200A0H(9)MOV AX,BX+10H=2000H*10H+0100H+10H=20110H(10)MOV AX,VALBX=2000H*10H+0100H+50H=20150H=2000H*10H+0100H+A0H+5

15、0H=201F0H 3.给定寄存器及存储单元的内容为:(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,(20101)=51H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。试说明下列各条指令执行完后,AX 寄 存器中保存的内容是什么。1200H 立即寻址 AX=1200H r c II 32H BX 寄存器寻址 AX=0100H 51H 1200H 直接寻址 26H(1)MOV AX(2)MOV AX(3)MOV AX 物理地址=2000H*10H+120

16、0H=21200H AX=0B61AH 20100 H 20101 H 相对寄存器寻址 物理地址 相对寄存器寻址 物理地址(11)MOV AX,BXSI 基址变址寻址 物理地址=2000H*10H+0100H+A0H=201A0H(12)MOV AX,VALBXSI 相对基址变址寻址 物理地址 物理地址=2000H*10H+0100H=20100H AX=5132H(5)MOV AX,1100HBX 相对寄存器寻址 物理地址=2000H*10H+0100H+1100H=21200H AX=0B61AH(6)MOV AX,BXSI 基址变址寻址 物理地址=2000H*10H+0100H+02H=

17、20102H AX=8326H 4.试说明指令 MOV BX,10HBX 与指令 LEA BX,10HBX的区别 答:MOV BX,10HBX BX=物理地址为(DS*10H+BX+10H)2 字节单元的内容 LEA BX,10HBX BX=BX+10H(地址)5.假 设(DS)=3000H,(CS)=1000H,(IP)=1500H,(BX)=1000H,位 移 量 大 DATA=50H(31000H)=1250H,(31050H)=2400H,(31052H)=6000H。确定下列转移指令的转移地址(1)JMP 2500H IP=2500H CS=1000H CS 段 指 令 物 理 地

18、址=1000H*10H+2500H=12500H(2)JMP BX IP=BX=1000H CS=1000H CS 段 指 令 物 理 地 址=1000H*10H+1000H=11000H(3)JMP WORD PTRBX DS 段物理地址=3000H*10H+1000H=31000H IP=(31000H)=1250H CS=1000H:CS 段 指 令 物 理 地 址=1000H*10H+1250H=11250H (4)JMP DWORD PTRBX+DATA DS 段物理地址=3000H*10H+1000H+50H=31050H IP=(31050H)=2400H CS=(31052H)

19、=6000H CS 段 指 令 物 理 地 址=6000H*10H+2400H=62400H 6.设堆栈指针 SP 的初值为 2500H,(AX)=1234H,(BX)=5678H。执行指令 PUSHXX 后,(SP)二?,再执行指令 PUSH BX 及 POP AX 之后,(SP)=?(AX)=?(BX)=?PUSH AX SP=SP-2=2500H-2=24FEH PUSH BX SP=SP-2=24FEH-2=24FCH POP AX SP=SP+2=24FCH+2=24FEH AX=5678H BX=5678H 7.分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1)MOV

20、AH,BX 错 数据结构不同 MOV AX,BX 或 MOV AH,BL(2)MOV BX,SI 错 二存储单元间不允许直接传送数据 MOV AX,SI MOV BX,AX (3)MOVAX,SIDI 错源区都为变址寄存器 MOV AX,BXDI 或 MOVAX BXSI(4)MOVMYDATBXSI,ES:AX 错 段前缀应指向存 储单元 MOV ES:MYDATBXSI,AX 错 数据结构不同 MOV BYTEPTRBX,100(6)MOV BX OFFSETMA YDATSI错 MAY DAT为符号地址 MOV BX,OFFSETMA YDAT MOV CS,AX 错 不允许给 CS 赋

21、值 MOV DS,AX(8)MOV DS,BP 错 赋值方式不对 MOV AX,BP MOV DS,AX(5)MOVBYTEPTRBX,1000 8.设 VAR1 VAR2 为字变量,LAB 为标号,分析下列指令的错误之处并加以改正。(1)ADD VAR1,VAR2 错 VAR1、VAR2 为字变量(代表 2 个存储单元地址)MOV AX,VAR2 ADD VAR1,AX(2)MOV AL,VAR2 错 数据结构不同 MOV AX,VAR2(3)SUB AL,VAR1 错 数据结构不同 SUB AX,VAR1(4)JMP LABSI 错 LAB 为标号地址 JMP LAB(5)JNZ VAR1

22、 错 VAR1 为字变量不是标号地址 JNZ LAB 9.已知(AL)=6CH,(BL)=0A9H,执行指令 ADD AL,BL 后,AF、CF、OF PF、SF、和 ZF 的值各为多少?ADD AL,BL AL=6CH+A9H=15H AF=1 CF=1 OF=0 PF=0 SF=0 ZF=0 10.试判断下列程序执行后,(BX)=的内容。MOV CL,5 MOV BX,01C9H BX=01C9H ROL BX,1 BX=0392H RCR BX,CL BX=201CH 11.写出能够完成下列操作的 8086CPU!令。(1)把 4629H 传送给 AX 寄存器;MOV AX,4629H

23、(2)从 AX 寄存器中减去 3218H;SUB AX,3218H(3)把 BUF 的偏移地址送入 BX 中。LEA BX,BUF 12.根据以下要求写出相应的汇编语言指令。(1)把 BX 和 DX 寄存器的内容相加,结果存入 DX 寄存器中;ADD DX,BX(2)用 BX 和 SI 的基址变址寻址方式,把存储器中的一个字节与 AL 内容相加,并保 存在AL 寄存器中;ADD AL,BXSI(3)用寄存器 BX 和位移量 21B5H 的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中;ADD WORD PTR BX+21B5H,CX(4)用位移量 2158H 的直接寻址

24、方式把存储器中的一个字与数 3160H 相加,并把结 果送回该存储器中;ADD WORD PTR 2158H,3160H(5)把数 25H 与(AL)相加,结果送回寄存器 AL 中。ADD AL,25H 13.按下列要求写出相应的指令或程序段。(1)使 BL 寄存器中的高、低四位互换;MOV CL,4 ROL BL,CL 屏蔽 AX 寄存器中的 b10 和 b5 位;AND AX,1111 1011 1101 1111B 分别测试 AX 寄存器中 b13 和 b2 位是否为 1。TEST AX,0000 0000 0000 0100B 测试 AX 寄存器中 b2 位是否为 1 TEST AX,

25、0010 0000 0000 0000B 测试 AX 寄存器中 b13 位是否为 1 14.执行以下两条指令后,标志寄存器 FLAGS 的六个状态为各为何值?MOV AX,95C8H ADD AX,8379H AX=1941H AF=1 CF=1 OF=1 PF=1 SF=0 ZF=0 15.若(AL)=85H,(BL)=11H,在分别执行指令 MUL 和 IMUL 后,其结果是多少?MUL BL AL*BL=85H*11H=133*17=2261?AX=08D5H(无符号数相乘)IMUL BL AL*BL=-7BH*11H=(-123)*17=-2091?AX=0F7D5H(有符号数相乘)第

26、 4 章 习题和解答 1.请分别用 DB DW DD 伪指令写出在 DATA 幵始的连续 8 个单元中依次存放数据 11H 22H 33H、44H、55H、66H 77H、88H 的数据定义语句。DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 1122H,3344H,5566H,7788H DATA DD 11223344H,55667788H 2.若程序的数据段定义如下,写出各指令语句独立执行后的结果:DSEG SEGMENT DATA1DB 10H,20H,30H;3 个字节(数据为 10H,20H,30H),地址 0000H-0002H D

27、ATA2DW 10 DUP(?);20 个字节(数据全为未知数),地址 0003H-0016H STRING DB 123;3 个字节(数据为 31H,32H,33H),地址 0017H-0019H DSEG ENDS(1)MOV AL,DATA1 AL=10H(2)MOV BX,OFFSET DATA2 BX=0003H(3)LEA SI,STRING SI=0017H ADD BX,SI BX=001AH MOV AL,SI+2 AL=33H 3.试编写求两个无符号双字长数之和的程序。两数分别在 MEM 和 MEM 单元中,和 放在 SUM 单元。DATAS SEGMENT MEM1 DD

28、 82349678H MEM2 DD 9876A432H SUM DD?DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS MOV AX,WORDTRBX;将0000H地址的内容 9678H?AX=9678H ADD AX,WORDPTR SI;AX+0004H地址的内容 A432H?AX=3AAAH 有进位 CF=1 78H 0000H 0001H 96H START:MOV AX,DATAS MOV DS,AX;LEA BX,MEM1 LEA SI,MEM2;LEA DI,SUM;取定义的 DS 段的段地址?DS 取 MEM 偏移地址 BX=

29、0000H 取 MEM 偏移地址 SI=0004H 取 SUM 偏移地址 DI=0008H 单元中 INC BX;BX=BX+1=0001H INC BX;BX=BX+1=0002H INC SI;SI=SI+1=0005H INC SI;SI=SI+1=0006H INC DI;DI=DI+1=0009H INC DI;DI=DI+1=000AH MOV AX,WORDTRBX;将0002H地址的内容 8234H?AX=8234H ADC AX,WORD PTR SI;AX+0006H 地 址 的 内 容 9876H+CF?AX=1AABH 有进位 CF=1 MOV WORD PTR DI,

30、AX;将 AX 的内容?偏移地址 DI=000AH 字 单元中 MOV AH,4CH INT 21H CODES ENDS END START MOV WORD PTR DI,AX 将 AX 的内容?偏移地址 DI=0008H 字 4.试编写程序,测试 AL 寄存器的第 4 位是否为 0?TEST AL,00001000B JZ LP 5.编写程序,将 BUFFER的一个 8 位二进制数转换为 ASCII 码,并按位数高低顺 序存放在ANSWE 开始的内存单元中。DATA SEGMENT BUFFER DB 3CH ANSWER DB?,?DATA ENDS CODE SEGMENT ASSU

31、ME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,BUFFER;AL=3CH MOV CL,4 SHR AL,CL 将 AL 内容右移 4 位 AL=03H 先取高四位 3 CMP AL,9 JG LP1;若 AL 内容大于 9,说明 AL 内容在 A-F 之间 ADDAL,30H;否则 AL 内容小于 9,将 AL 内容转换为 ASCII 码即 AL+30H-AL JMP LP2 LP1:ADDAL,37H;将 AL 内容转换为 ASCII 码即 AL+37H-A(如 0CH+37H=43H 大写 C 的 ASCII 码)LP2:MO

32、V ANSWER,AL;将结果存入 ANSWE 第一个单元 MOV AL,BUFFER;AL=3CH AND AL,0FH;取 AL 内容低四位 C MOV AH,4CH INT 21H CODE ENDS END START 6.假设数据项定义如下:DATA1 DB HELLO!GOOD MORNIN!G DATA2 DB 20 DUP(?)用串操作指令编写程序段,使其分别完成以下功能:i.从左到右将 DATA 仲的字符串传送到 DATA2 中;LEA SI,DATA1;SI=0000H LEA DI,DATA2;DI=0014H MOV CX,20;20 个字符 REP MOVSB;将 D

33、ATA 仲的字符串传送到 DATA2 中 传送完后,比较 DATA1 和 DATA2 中的内容是否相同;LEA SI,DATA1 LEA DI,DATA2 MOV CX,20;20 个字符 REPE CMPSB;CX 不为零时,字符相同继续比较,不同指令停止 ;否则都相同 iii.把 DATA 仲的第 3 和第 4 个字节装入 AX MOV AX,WORD PTR DATA1+2 iv.将 AX 的内容存入 DATA2+5 开始的字节单元中。MOV WORD PTR DATA2+5,AX 7.执行下列指令后,AX 寄存器中的内容是多少?TABLE DW 10,20,30,40,50 ENTRY

34、 DW 3 BX,OFFSET TABLE;BX=0000H(地址)8.编写程序段,将 STRING 仲的最后 20 个字符移到 STRING2 中(顺序不变)JNZ STOP 若不同-STOP ADD BX,ENTRY;BX=0003H MOV AX,BX;AX=1E00H MOV DATA SEGMENT STRING1 DB“0123456789ABCDEFGHIJKLMNOPQRSTUV”WXY;3Z6 ASCII 码 STRING2 DB 20 DUP(?)L EQU STRING2-STRING1;STRING1 的长度=36 DATA ENDS CODE SEGMENT ASSU

35、ME CS:CODE,DS:DATA,ES:DATA START:MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,STRING1;取 STRING1 串的首地址=0000H LEA DI,STRING2;取 STRING2 串的首地址=0024H=36 MOV CX,20 MOV AX,L;AX=36=0024H SUB AX,CX;AX=36-20=0024H-0014H=0010H个字符 ;SI=SI+AX=0000H+0010H=0010H REP MOVSB MOV AH,4CH INT 21H CODE ENDS END START 9.假设一个 48

36、位数存放在 DX AX BX 中,试编写程序段,将该 48 位数乘 2 CODE SEGMENT ASSUME CS:CODE START:MOV BX,9ABCH;设 DX AX BX=1234 5678 9ABCH MOV AX,5678H;DX AX BX*2=将 DX AX BX 左移一次 MOV DX,1234H SHL BX,1;BX=BX*2=3578H,CF=1 RCL AX,1;AX=AX*2+CF=ACF1H,CF=0 RCL DX,1;DX=DX*2+CF=2468H,CF=0 MOV AH,4CHADD SI,AX INT 21H CODE ENDS END START

37、 10试编写程序,比较 AX BX CX 中带符号数的大小,并将最大的数放在 CODE SEGMENT ASSUME CS:CODE START:MOV AX,-5 MOV BX,6 MOV CX,10 CMP AX,BX JGE LL1 XCHG AX,BX LL1:CMP AX,CX JGE LL2 XCHG AX,CX LL2:MOV AH,4CH CODE ENDS AX 中 INT 21H END START 11.若接口 03F8H 的状态的数据(bl)和(b3)同时为 1,表示接口 03F8H 有准备好的 8 位数据,当 CPU 将数据取走后,bl 和 b3 就不再同时为 1 了

38、。仅当又有数据准备好 时才再同时为 1。试编写程序,从上述接口读入 20 个数据,并顺序放在 DATA 开始的地址中。DATAS SEGMENT DATA DB 20 DUP(?)DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:MOV AX,DATA MOV DS,AX MOV CX,20 LEA BX,DATA MOV DX,03F8H LOP:IN AL,DX;NOT AL;0 TEST AL,00001010b 是否同时为 1 JNZ LOP;继续读状态 IN AL,DX;数据 MOV BX,AL;INC BX DEC CX

39、 JNZ LOP;MOV AH,4CH INT 21H 读接口状态 将 AL 内容取反,若 b1=1 和 b3=1 取反后全为 判断接口 03F8H 的状态的数据(bl)和(b3)若相与的结果不为零表示接口没有准备好,若相与的结果为零表示接口准备好;读接口 存数据 从接口读入 20 个数据 CODES ENDS END START 12.画图说明下列语句分配的存储空间及初始化的数据值(1)DATA1 DB BYTE,12,12H,2 DUP(O,?,3)(2)DATA2 DW 2 DUP(O,1,2),?,-5,256H 13.请用子程序结构编写如下程序:从键盘输入一个二位十进制的月份数(01

40、12),然后显示出响应的英文缩写名 14.给出下列等值语句:LPHA EQU00 BETA EQ125 GRAMMEQU 4 试求出下列表达式的值:(1)ALPHA*100+BETA;MOV AL,LPHA MOV BL,100 0000H 0001H 0002H 0003H MOV CX,BETA MUL BL;AL*BL-AX ADD AX,CX(2)(ALPHA+4)*BETA-2 MOV AL,LPHA ADD AL,4 MOV BL,BETA MUL BL;AL*BL-AX SUB AX,2(3)(BETA/3)MOD 5;MOV AX,BETA MOV BL,3 DIV BL MO

41、V AL,AL MOD 5(4)GRAMMOR 3 MOV AL,GRAMM OR AL,3 15.图示以下数据段在存储器中的存放形式 DATA SEGMENT DATA1 DB 10H,34H,07H,09H DATA2 DW 2 DUP(42H)DATA3 DB HELLO DATA4 EQU 12 DATA5 DD 0ABCDH DATA ENDS 16.阅读下边的程序段,试说明它实现的功能是什么?DATAS SEGMENT DATA1 DB ABCDEFG DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:MOV AX,DA

42、TAS MOV DS,AX MOV BX,OFFSET DATA1;BX 取 DATA1 地址,BX=0000H MOV CX,7 NEXT:MOV AH,2;DOS 功能 2 MOV AL,BX XCHG AL,DL;将要显示字符的 ASCII 送 DL INC BX INT 21H LOOP NEXT;功能是显示字符 ABCDEFG MOV AH,4CH INT 21H CODES ENDS END START 17.编写一程序段,把 BUFFER 开始的 100 个字节的内存区域初始化为 55H 0AAH 55H 0AAH、55H 0AAH DATAS SEGMENT BUFFER DB

43、 100 DUP(?)DATAS ENDS 18.有 16 个字节,编程序将其中第 2、5、9、14、15 个字节内容加 3,其余字节内 CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:MOV AX,DATAS MOV DS,AX LEA BX,BUFFER;BX 取 BUFFER 地址,BX=OOOOH MOV CX,50 LP:MOV BX,55H INC BX MOV BX.OAAH INC BX DEC CX JNZ LP MOV AH,4CH INT 21H CODES ENDS END START 容乘 2(假定运算不会溢出)DATAS S

44、EGMENT NUM0 DB1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 L1 DB 2,5,9,14,15 L2 DB 1,3,4,6,7,8,10,11,12,13,16 DATAS ENDS CODES SEGMENT ASSUMCES:CODES,DS:DATAS START:MOVAX,DATAS MOVDS,AX LEASI,L1 LEADI,L2 MOVCX,5 LP1:LEABX,NUM0 ADDBL,SI SUBBL,1 ADDBYTE PTRBX,3 18.有 16 个字节,编程序将其中第 2、5、9、14、15 个字节内容加 3,其余字节内

45、 INC SI LOOP LP1 MOVCX,11 LP2:LEABX,NUM0 ADDBL,DI SUBBL,1 SHLBYTE PTRBX,1 INC DI LOOP LP2 MOVAH,4CH INT 21H CODES ENDS ENDSTART 19.编写计算斐波那契数列前 20 个值的程序。斐波那契数列的定义如下:;左移=*2 F(0)=0,F(1)=1,F(N)二 F(N-1)+F(N-2),N 2 DATAS SEGMENT F DW 0,1,18 DUP(?);此处输入数据段代码 DATAS ENDS CODES SEGMENT ASSUMECS:CODES,DS:DATAS

46、 START:MOVAX,DATAS MOVDS,AX LEABX,F MOVCX,18 LP:MOVAX,BX ADDAX,BX+2 MOVWORD PTRBX+4,AX;F(2)=F(1)+F(0)=1,F(N)=F(N-1)+F(N-2)N=2;BX=0000H;剩余 18 个数;AX=F(0)=0;AX=F(0)+F(1)=0+1=1 ADDBX,2;F(BX+4)=F(BX+2)+F(BX)LOOP LP LEABX,F MOVCX,20 LP1:PUSHCX LEASI,BUF+4 MOVCX,5 MOVAX,BX LP2:MOVDX,0 MOVDI,10 DIV DI ADDDL

47、,30H MOVSI,DL DECSI LOOP LP2;显示 20 个数据;取数;DXAX/DI LEADX,BUF MOVAH,9 INT 21H ADDBX,2 POPCX LOOP LP1 MOVAH,4CH INT 21H CODES ENDS ENDSTART 20.试编写将键盘输入的 ASCII 码转换为二进制数的程序。如1 2 3即 31H 32H 33H 组合成 123 DATAS SEGMENT NUM DW?;此处输入数据段代码 DATAS ENDS CODES SEGMENT ASSUMECS:CODES,DS:DATAS START:MOVAX,DATAS MOVDS

48、,AX MOVBX,0 LP:MOVAH,1;单个字符输入 INT 21H CMPAL,13;判断是否回车键 JZ QUIT SUBAL,30H;解码 MOVCX,10 MOVAH,0 XCHGAX,BX MULCX;BX*10 ADDBX,AX;BX=BX*10+AX JMP LP QUIT:MOVNUM,AX MOVAH,4CH INT 21H 若是退出 CODES ENDS ENDSTART 第 5 章 习题和解答 1.半导体随机存储器 RAM 与只读存储器 ROM 有何区别?它们各有哪几种类型?2.简述存储器的主要性能指标及目前采用较多的 3 级存储结构是什么?3.简述地址译码的两种方

49、式,并指出它们在基本原理和适用场合上的区别。4.在基于 8086 的微计算机系统中,存储器是如何组织的?是如何与处理器总线连 接的?BHE#言号起什么作用?5.存储器的哪一部分用来存储程序指令及像常数和查找表一类的固定不变的信 息?哪一部分用来存储经常改变的数据?6.什么是高速缓冲存储器?在微机系统中使用高速缓冲存储器的作用是什么?7.存储器体系为什么采用分级结构,主要用于解决存储器中存在的哪些问题?8.什么是虚拟存储器?它的作用是什么?9.用 8KX8位的静态 RAM 芯片组成 16KX 8 位的存储器,地址线的高位与 74LS138 译码器相连,采用全译码方式产生存储芯片的片选信号。试画出存储器与 CPU 之间 的地址线、数据线及主要控制信号线的连接图。10.为某 8 位机(地址总线为 16 位)设计一个 32KB 容量的存储器。要求采用 2732 芯 片构成 8KB EPROI 区,地址从 0000H 幵始;采用 6264 芯片构成 24KB RAME,地址 从2000H 幵始。片选信号采用全译码法。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁