2025年兰州理工大学微机原理上机实践与答案解析_第1页
2025年兰州理工大学微机原理上机实践与答案解析_第2页
2025年兰州理工大学微机原理上机实践与答案解析_第3页
2025年兰州理工大学微机原理上机实践与答案解析_第4页
2025年兰州理工大学微机原理上机实践与答案解析_第5页
已阅读5页,还剩15页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章微型计算机概论

1.1、答:微型计算机系统包括硬件系统和软件系统两大部分。硬件系统包括:

微型计算机、外部设备、电源及其他辅助设备。软件系统包括:系统软件和应用软

件。

微型计算机也称为主机,主机包括:微处理器、存储器、输入/输出接口

(Input/Output),微处理器通过系统总线和存储器、输入/输出接口进行连接。

微处理器(MicroprocessorUnit)简称为MPU(或者称为MP),它是一种中央

控制器(CentralProcessingUnit),简称CPU。它是微型计算机的关键部件,它将运

算器、控制器、寄存器通过内部总线连接在一起,并集成在一种独立芯片上。

1.2、答:单片机是将CPU、ROM、RAM以及I/O接口电路以及内部系统总线

等所有集中在一块大规模集成电路芯片上,就构成了单片机。

单板机是将微处理器芯片、存储器芯片、I/O接口芯片及少许的输入输出设备

(键盘,数码显示屏)安装在一块印制板上构成一台微型计算机。

由多块印制板构成的微机称为多板机。

1.3、完毕下列转换(保留4位小数)

(21.32))0=(10101.0101)2=(25.2436)8=(15.51EB),6

50.38D=110010.011()B=62.3024Q=32.6147H

1.4,完毕下列计算

已知X=-63,Y=59

则[X]M(=BFH(lOUlillB),[X]S=C()H(B),[X]^=C1H(11()000()1B)

[Y]原=3BH(0011I011B),[Y]&=3BH(001I10IIB),[Y]#=3BH(00III0I1B)

[X4Yl?h=0FCH(11111100B),[XY]fh=86H(10000110B)o

[X]补+[Y]补=0FCH(llllll(X)B),[X]朴一[g]朴=86H(1000011OB)o

1.5、答:浮点数是指小数点在数值中的位置不是固定不变,实际位置将随阶码

而浮动,用这种措施表达的数,称为浮点数。

定点数是指小数点在数值中的位置固定不变。

1.6、答:压缩BCD码是4位二进制表达一位十进制数而非压缩BCD码是8位

二进制表达一位十进制数。

1.7、写出下列数值的压缩的BDC码、非压缩的BDC码、ASCII码值。

(改为15,29)

15=[15H]EiffiBCDW=[0105H]非压嫡BCD码=[3135H]ASCTI科

29=[29H]j冏BCD码:[0209H]善压编BCDW=[3239H]ASCII玛

第二章8086/8088微处理器

2.1答:从功能上讲由两部分构成总线接口单元BIU和执行单元EU构成。

总线接口单元(BIU)是微处理器内部与存储器和I/O接口传送信息的通道,总线

接口单元负责从内存中将指令送到指令队列中;负责把数据从内存或I/O接口送到

执行单元(EU);负责将执行单元的运行成果送到内存或I/O接口。

EU的功能是负责译码和执行指令。

2.2答:指令队列(Queue)寄存预取的指令,采用预取指令的措施将减少微处理

器的等待时间,提高运行效率。8086CPU中指令队列有6个;8088CPU中指令队

列有只有4个。

2.3答:8()86/8088CPU中有16个16位的寄存器。4个段地址寄存器是代码段

寄存器CS;数据段寄存器DS;堆栈段寄存器SS和扩展段寄存器ESo它们是用

来寄存每一种段的首地址(段基地址)。一种指令指针寄存器IP是用于寄存要执行

的指令的偏移地址,它不能作为一般寄存器使用。一种标志寄存器(又称为程序状

态寄存器)用于反应指令执行成果或控制指令执行形式。)有8个通用寄存器,通用

寄存器分为数据寄存器与指针和变址寄存器两组。数据寄存器包括AX(累加器)、

BX(基址寄存器)、CX(计数器)和DX(数据寄存器),一般用来寄存16位数据,

故称为数据寄存器。其中的每一种又可根据需要将高8位和低8位提成独立的两个

8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于寄存8

位数据,它们均可独立寻址、独立使用。数据寄存器用来寄存计算的成果和操作数,

也可以寄存地址。

指针寄存器包括堆栈指针寄存器SP、基址指针寄存器BP一般用来寄存地址的

偏移量和用于寻址内存堆栈内的数据

变址寄存器包括原变址寄存器SI和目的变址寄存器DI,一般用来寄存地址的

偏移量为存储器寻址时提供地址。

2.4答:标志寄存器又称为程序状态寄存器,是一种16位的寄存器,标志寄

存器设置了9个标志位。这9个标志位按功能分可以分为两类:一类为状态标志,

状态标志表达执行某种操作后,ALU所处的状态特性,这些状态标志会影响背面的

详细操作。状态标志有6个:CF、AF、SF、PF、OF和ZF。另一类为控制标志,

用来控制CPU操作,反应存储器地址变化的方向、与否容许中断及在执行程序时与

否进行单步中断。控制标志有3个:DF、IF和TF控制标志是人为设置的,每个控

制标志都对某种特定的功能起控制作用。

2.5答:8086与8088有3点不一样之处;1.8086有16条数据线而8088只有

8条数据线,2.8086丽/MX而8088MN/拓乙3.8O86M/75而8088而、

2.6答:堆栈是在内存中开辟的一种特定的区域,用以寄存CPU寄存器或存储

器中临时不用的数据和有用的信息。在数据段和附加段寄存数据时,一般是从低地

址开始向高地址寄存数据,而用PUSH指令向堆栈中寄存数据时总是从高地址开始

逐渐向低地址方向增长。堆栈指令遵照“先进后出’「后进先出”的原则,但凡用PUSH

指令最终推入堆栈的数据,用POP指令弹出时最先出栈。在操作时是以字为单位。

2.7答:8086/8088CPU各有20根地址总线,可寻址范围是1M个存储单元。

8086CPU有16根数据,一次可以读一种字也可以读一种字节。8088CPU有8数据总

线一次以读一种字节。

2.8答:1.物理地址就是实际地址,它具有20位的地址值,它是唯一标志IMB

存储空间的某一单元的地址。2.逻辑地址由段基址却偏移量构成。程序以逻辑地址

编址,而不是物理地址。3.在8086/8088存储空间中,把16个字节的存储空间看作

一节。为了简化操作,规定各个逻辑段从节的整数边界开始,也就是说段首地址低

4位应当是“0”,因此把段首地址的高16位称为“段基值”。4.偏移量是该物理地

址距离段首地址的单元数。

2.9答:总线上传播信号的一组导线,作为微机各部件之间信息传播的公共通

道。系统总线按功能分数据总线、地址总线、控制总线。

2.10答:1.8086/8088CPU把存储器分为代码段、数据段、堆栈段、附加段。由

于8086/8088的寄存器是16位,最大只能寻址64K个单元的存储空间,为了增大寻

址空间把存储器进行分段,这样就可以寻址1MB存储空间。2.每段最大空间为

64KBo

2.11答:(1)2300H:1010H;24010H(2)0000H;I000H:01000H

(3)2AE0H;1690H;2C490H(4)7369H;0010H;736A0H

2.12答:1.数据段首地址是1H末地址是21FFFH02.附加段的首地址是20A30H

末地址是30A2FH。3.代码段的首地址是470E0H=470EHxl0H末地址是

570DFH=(470E0H+FFFFH)。

2.13答:8086/8088CPU复位后来,除代码段寄存器外,其他标志寄存器、指

令指针寄存器、各段寄存器及指令对列所有被清零。

2.14答:在一种读总线周期ALE在第一种时钟周期为高电平,其他周期为低电

平。丽/S7在第一种时钟周期为低电平,其他周期为高电平。而在第一种时钟周

期为低电平,第二、三周期为高电平。祢一直为高包平。M/元一直为高电平。DT/R

一直为低电平。

2J5答:1.8086CPU读/写总线周期时,至少包括4个时钟周期。2.CPU在T3

状态的前沿(下降沿)对Ready信号进行采样。若CPU在状态的开始采样到Ready

信号为低电平,那么将在T3和T4之间插入等待状态Tw。3.Tw可以是一种,也可以

是多种。CPU在每个TW的前沿处对Ready信号进行采样。当在Tw状态采样到

READY信号为高电平时,在目前Tw状态执行完,进入T4状态。

第三章存储器

3.1答:1.容量:存储器芯片的容量是以1位二进制数(bit)为单位,因此存储

器容量是指每一种存储器芯片所能存储的二进制数的位数。(存储器容量;存储单元

数x位数)芯片数量(N)=f统容量2.存储速度:存储器的基本操作是读出与写入,

芯片容量

称为“访问”或“存取”。存储器的存储速度有两个时间参数:(1)访问时间(Access

Time)L从启动一次存储器操作,到完毕该操作所经历的时间。(2)存储周期

(MemoryCycle)K启动两次独立的存储器操作之间所需的最小时间间隔。3.存储

器的可靠性:4.性能/价格比:5.其他指标(存储器的选择有时还应考虑功耗、集

成度等指标)。

3.2答:按存储器的读写功能分可以分为随机读写存储器(RAM)和只读存储器(ROM)。

随机读写存储器RAM可以随机地按指定地址从存储单元存入或读取(简称存取)数据,

寄存在RAM中的信息,一旦掉电就会丢失。

随机读写存储器RAM可分为静态随机存取存储器SRAM,动态随机存取存储器DRAM

和集成随机读写存储器IRAMo

只读存储器(ROM)的基本特性是在正常运行中只能随机读取预先存入的信息,虽

然在断电状况下,ROM仍能长期保留信息内容不变,因此它是一种永久存储器。

只读存储器(ROM)可分为掩膜只读存储器(MaskRO”)、可编程只读存错器(PROM)、

紫外线可擦除可编程只读存储器(EPROM)、电可擦除编程只读存储器(EPROM)和迅速

可擦编成只读存储器(FlashEPROM)o

掩膜只读存储器其构造简朴,存储信息稳定,可靠性高,可以永久性保留信息;可

编程只读存储器是由半导体厂家制作“空白”存储器阵列(即所有存储单元所有为1或

所有为0状态)发售,顾客根据需要可以实现现场编程写入,但只能实现一次编程;紫

外线可擦编程只读存储器、电可擦除编程只读存储器和快可擦编程只读存储器等不仅可

以现场编程。还可以擦除原存储的信息内容,写入新的信息。

3.3答:SRAM的特点是在一种存储单元所用晶体管数目多,但不需要刷新电路。DRAM

的特点是在一种存储单元所用品体管数目少,但需要刷新电路。1RAM的特点是将动态随

机存取存储器和刷新电路集成在一片芯片中,它即具有SRAM速度快的长处,又具有DRAM

的廉价。IRAM实际上是附有刷新电路的DRAM。它在现代微机系统中得到广泛应用,大

容量的内存一般都是用IRAM。

3.4答:I)13条地址线和4条数据线:2)19条地址线和I条数据线

3)17条地址线和4条数据线;4)15条地址线和8条数据线

3.5答:1)RAM的存储容量为256Kx8bit;2)有18条地址线和8条数据线;3)

若采用6116需要128片,若采用6264需要32片,若采用62128需要16片,若采

用2114需要512片,若采用2141需要512片,

3.6答:1)ROM的存储容量为512Kx8bit;2)需要19条地址线和8条数据

线;3)若采用2764需要64片,若采用27128需要32片,若采用2816A需要256

片,若采用28F256需要16片。

3.7答:常用的存储器片选控制措施有线选法、全译码法和部分译码法。

线选法地址线可以不用完,也无需专门的译码电路。但由于高位地址线可随意

取值。或1。因此,存在地址重叠,并且导致存储器地址不能持续分布。

全译码法所有地址线均参与地址译码,芯片的地址线直接和低位地址总线相

连,高位地址总线经译码器或逻辑电路与各芯片的片选信号相连。

部分译码法与全译码法类似,只是高位地址线中有一部分进行译码,产生片选

信号,而不是所有。这种措施称为部分译码法。

3.8答:第一片的首地址为21000H(错),末尾地址为24FFEHo第二片的首地

址为2100IH,末尾地址为24FFFH。第三片的首地址为25000H,末尾地址为28FFEH。

第四片的首地址为25001H,末尾地址为28FFFH。

3.9第一片Ai9-Ai2=01000000,地址范围是40000H-40FFEH

第二片AI9-AI2=01000000,地址范围是40001H~40FFFH

第三片Ai9~Ai2=01000001,地址范围是41000H-41FFEH

第四片AI9—A12=01000001,地址范围是41001H-41FFFH

3.10(有问题A0和BHE未画)按既有的连线地址为

第一片A⑻〜Ai3=1000000,地址范围是8000CH〜81FFFH_

第二片A©〜Ai3=10()0()()l,地址范围是8H〜83FFFH_

第三片A.〜AgOOOOlO,地址范围是84000H~85FFFH_

图3-18086CPU与存储器连接电路图

第四片A19-Ai3=1000011,地址范围是86000H〜87FFFH.

图3-28086CPU与存储器连接电路图

3.111)答:是译码功能。

2).

M1O

A|(t

CPUA”

8086谯不RAM)

36264

ITD

BHF

*WRO)~DT

WR

RD

•-Dis

3)答:ROM。、ROM]的地I止范围。94000H-97FFFH

3.12答:存储器(1)的地址范围为8OOOOH-8OFFEH;存储器(2)的地址范

围为80001H~8OFFFH。(题目有错,存储器(4)的地址范围为81001H-81FFFH)

3.13答:1)系统的存储容量为:B3FFFII-BOOOOI1+1=400011=16KB;

2)需要6264芯片:(16K*8bit)/8K*8bit=2片:

3)画出系统连接图。两片6264芯片的地址范围如表所示,高位地

址A14〜A19参与译码形成两片6264的片选信号,奇地址存储器芯片和偶地址

存储器芯片由A0和瓦行辨别。存储器与系统总线的连接电路如图题3.13所示。

A19A18A17A16AI5A14A13A12AllA10A9A8A7A6A5A4A3A2AlAO

10II0000000000000000

101100111I11IIII11II

M

却

G

-

M/ioG译

-码

A

cpuI8GC;器AnA。

A16B

AWE

I5A

AI-4OE6264(2)

D

-CS2

RR

wCS1

D()・..D?

BHE

Ao

Do~D?

DS~D15

图题3.13存储器扩展电路

3.14答:(不是8086系统)

—

A<J-AI>5棒

Gu洋

CS山聿…(scs

61166116

G;*梆T61162732

£RD--------EDRD

lRD

vTI—WRRD

LX.6%D,

3.15在8086CPU构成的系统中,用4片2764(8Kx8bit)存储芯片构成随机ROM

存储系统,其第一片的苜地址为(COOOH:8000H),试画出存储器与CPU的连接电路

图。

A|)*A|

-Y.

译

d码

a蹲

C

B

AWE2764(4)

CS

RIDO...D.

>1|^>1

BlIl-

Ao

答:DK~DI$

第四章8086/8088指令系统

4.1答:机器语言的每一条指令是以二进制为弋码的指令,它可以被计算机直

接执行。汇编语言是用助记符或用符号来编写指令,是一种与机器语言一一对应的

语言。机器不能直接执行程序,程序必须通过翻译,机器才能执行。高级语言是面

向过程的语言,它不依赖于特定的机器,独立于机器,用同一种高级语言编写的程

序可以在不一样的机器上运行而获得相似的成果。

4.2请指出如下各指令的源、目的操作数所使用的寻址方式。

(1)MOVSL21OOH源:立即数寻址:目:寄存器寻址

(2)SBBBYTEPTRDISPIBX],7;源:立即数寻址;目:寄存器相对寻址

(3)AND[DI],AX源:寄存器寻址;U:寄存器间接寻址

(4)ORAX,[609EH]源:直接寻址;目:寄存器寻址

(5)MOV[BX+DI+30H1,CX源:寄存器寻址;目:基址变址相对寻址

(6)PUSHES:[BP]源:寄存器间接寻址;目:隐含寻址

(7)CALL(DI]DISP寄存器相对寻址

(8)JNZShortlabel直接寻址

(9)CBWBL(指令错)

(10)MOVAX,|l()00H]源:直接寻址;目:寄存器寻址

(11)MOVAX,ARRAY[BX][SI];源:基址变址相对寻址;目:寄存器寻址

(12)MULBL源:寄存器寻址:目:隐含寻址

(13)MOVAX,[BX][SI]源:基址变址寻址;LI:寄存器寻址

(14)MOVAL,TABLE源:直接寻址;目:寄存器寻址

(15)MOVAX,DISPfBX+DI]源:基址变址相对寻址;目:寄存器寻珏

(16)MOVAX,[BX1源:寄存器间接寻址;目:寄存器寻址

4.3答:基址寄存器BX、基址指针寄存器BP、原变址寄存器SI、目的变址寄

存器DI。

4.4下列各条指令与否有错?假如有,请指出错误之处。

(1)MOVDS,1000H立即数不能直接给段寄存相送数

(2)MOV[100],23HLI的操作数应指明类型,改为BYTEPTR"0()1

(3)ADDAX,[BX+BP+6]存储器寻址不能A两个基地址[BX,BP]

(4)PUSHDL进栈是以字为单位

(5)INAX,[3FH]I/O接口地址不能加括号

(6)OUT3FFH,AL口地址3FF应放在DX中

(7)LESSS,[SI]SS不能寄存偏移量

(8)POP[AX]AX不月来做间址寄存器

(9)IMIJL4CH乘法中源操作数不能是立即数

(10)SHLBX,5移位超过1位应放在CL中

(11)INT30()立即数(向量码)应不不小于255

(12)XCHGDX,0FFFH此指令中不能有立即数

(13)POPAL出校是以字为单位

(14)DIV32H除法中原操作数不能是立即数

(15)MOVAX,BYTEPTR[SI1源操作数和目的操作数不等宽

(16)MOVDX,DS:[BP]对的

(17)MOV128,CL目的操作数不能为立即数

4.5设若标志寄存器原值为0A11H,SP=0060H,AL=4.下列几条指令执行

后,标志寄存器、AX、SP的值分别是多少?

PUSHF;F-SP;SP=5EH,[5EH]=0A11H

LAHF;F怔LAH;AH=11H

XCHGAH,AL;AH04H,AL=11H

PUSHAX;SP=5CH,[5CH]=0411H,

SAHF;AH-F低8;

POPF;SP-F

标志寄存器=0411H,AX=0411H,SP=()()5EH

4.6已知DS=H,有关的内存单元值为:(21000H)=00H,(21001H)=l2H,

(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,

(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT的偏移地址为

1200Ho执行下列指令后,寄存器AX、BX、SI的值分别是多少?

MOVBX,OFFSETCOUNTBX=120>H

MOVSI,[BXJSI=1000H

MOVAX,COUNT[SI][BX]

AX=3040H,BX=1200H,SI=1()()()H

4.7答:AX=322FH,标志寄存器值为0410H

4.8设单元DATA在内存数据段中的偏移量为24C0H,在24C0H〜24c3H单元

中依次寄存着55H、66H、77H、88Ho下列几条指令执行后,寄存器AX、BX、

CL、SI、DS的值分别是多少?

MOVAX,DATA:AX=6655H

LEASI,DATA:SI=24C0H

MOVCL,(SI]:CL=55H

LDSBX,DATA;DS=8877H,BX=6655H

4.9若AX=26D3H,CX=7908H,CF=1,OF=0,执行下列指令后,寄存器AX、

CX的值分别是多少?AX=A74cHCX=FA()8H_CF=_0_OF=_()_。

SALCH,1CH二FA.CL=08H

RCRAX,CLAX=A726H,CF=1

ROLAL,1AL=4CH.CF=0

4.10答:原串在数据段中,但可以段超越。目的串必须在附加段中。

4.11答:M/7O=1;DT/R=]t~RD=\-WR=()t

数据总线上的数是0508H;地址总线上的数分是49420H

4.12(与21题重)答:AL=23H,功能将压缩的BCD码转换为二进制。

4.13答:上述程序段执行后,字节单元HCOD的内容是43H;HCOD+1

的内容是35H。该程序段的功能是将压缩的十六进制转换为ASCII字符。

4.14执行下面的程序段后,(CL)=02H,(AX)=0040H。

XORBX,BX

MOVAX,001OH

MOVCL,2

SALAL,CL

MOVBL,AL

SALAL,CL

ADDAX,BX

4.15问:(1)初值(AL)=37H时,程序段执行成果:(AL)=07H

(2)初值(AL)=9FHH、j,程序段执行成果:(AL)-OFFH

4.16下列程序段中,以X为首址的字单元中的数据依次为1234H、5678H;

以Y为首址的字单元中的数据依次为8765H、4321H。阅读程序,给出必要的程

序注释并完毕程序后的问题。

LEASI,X;SI=0000H

LEADI,Y;DI=0004H

MOVDX,[SI4-2];DX=5678H

MOVAX,X;AX=1234H

ADDAX,X;AX=2468H

ADCDX,[SI4-2];DX=ACF()H

CMPDX,[DI4-2];ACFOH与8765H比

JLL2;不不小于转移到L2

CMPAX,Y;不小于2468H与4321比

JLLI;不不小于转移到L1

JMPEXIT;无条件转移到EXIT

Li:MOVAX,1;给AX送1

JMPEXIT;无条件转移到EXIT

L2:MOVAX,2

EXIT:...

以上程序代码执行之后,AX=2;DX=ACFOH

4.17答:程序将依次向堆栈压入的数据为0003H、0002H、OOOlHo该程序

段实现了将二进制转换十进制功能。

4.18答:程序功能是计算AX=l-10,BX=1()H起的累加和。AX=1(),BX=47H,

CX=()o

MOVAX,0000H

MOVBX,0010H

MOVCX,10

LP:INCAX

ADDBX,AX

LOOPLP

HLT

4.19答:以上程序代码执行之后,AX=2:DX=ACFOH

4.20阅读下列程序段,给出必要的程序注释并完毕程序后的问题。

ADDAL,AL;2*AL

ADDAL、AL:4*AL

MOVBL,AL:ALfBL

SALBL,1:8*AL

ADDAL,BL:12*AL

HLT

(1)该程序段的功能是什么?答:把AL中的内容乘以12

(2)设AL的初值为OAH,执行该程序段后,AL为多少?答:AL=78H

4.21已知有程序段如下:(与12题重)

(1)该程序段的功能是什么?

答:将BCD码转换成二进制

(2)执行该程序段后,AL=23H

4.22、下列程序段规定在内存40000H开始的次序30个单元中寄存着8位无符

号数,将它们的和放在DX中,试填空完毕该程序(并加入必要的注释)或自行编

制一段程序完毕上述功能。

MOVAX,4000H;

MOVDS,AX;送段首地址

MOVSI,0000H;送偏移量

MOVex,30:送循环次数___________

XORAX,AX;清零

GOON:ADDAL,_1S1];两数相加

ADCAH,OOH:加进位位______________

INCSI♦修改地址____________

DECex•计数器减1___________

JNZGOON*不为零循环___________

MOVDX,AX;成果送DX

4.23在AL中有一种十六进制数的ASCII码,完毕下面程序段在每一空白处填

上一条合适指令(并加入必要的注释),实现将AL中的ASCII码转换成二进制数。

CMPAL,3AH;与3AH比较

JCDONE;不不小于转移到DONE

SUBAL,7;不小于减7

DONE:SUBAL,30H:AL减30H

HIT

4.24已知附加段中有一块长50个字的数据区,首址为DESTo欲编程将它

们所有初始化为0FFFFH值,试在下面程序段的空白处填上合适的指令或操作数

(并加入必要的注释),以实现上述功能。

LEADLDEST;取DEST偏移量

MOVCX,100;送计数值

CLD;清方向标志位,DF=0

MOVAL,OFFH;将AL-OFFH

REPSTOSB;将送10()个字节FFH到首址为DEST区域

4.25已知附加段中有一块长50个字的数据区,首址为DEST。欲编程将它

们所有初始化为OFFFFH值,试在下面程序段的空白处填上合适的指令或操作数

(并加入必要的注释),以实现上述功能。(与24题重)

DI,DEST;_____________________

MOVCX,;

CLD;

MOVAL,OFFH;

4.26附加段中有某字符串首址为BLOCK,长17个字节。欲查找其中第一

次出现字符飞”的位置.并将该位置所在的偏移量入栈保护。试在下面程序段的

空白处填上合适的指令(并加入必要的注释)或操作数以实现上述功能。

MOVDI,OFFSETBLOCK;送BLOCK的偏移量

MOVAL,65H•送cASCH码

MOVCX,17送计数值_______________

CLD*方向标志位清零

REPNZ_SCASB,*_寻找e____________

JNEOTHER,_找至Ie转至ijOTHER

DECDI•,_修改地址______________

PUSHDI偏移量入栈保护_________

OTHER:......(略)

4.27已知有某字串BUF1的首址为0000H,BUF2的首址为00I0H,数据段

与附加段重叠。欲从BUFI处开始将10个字数据次序传送至BUF2处,试在下

面程序段的空白处填上合适的指令或操作数以实现上述功能。

LEASI,BUFI;送BUFI的偏移量

ADDSI,12H:地址移动到字符串最终

LEADI,BUF2:送BUF2的偏移量

ADDDI,12H:地址移动到字符串最终

STD;方向标志位清零

MOVCX,1();送计数值

REPMOVSW;进行串操作

4.28在DAT和DAT1两个字节变量单元中有两个十进制数的ASCII码,编程

实现将这两个ASCII码转换为两个BCD码,并以压缩形式寄存在REST字节变量

单元中。试填写该程序划线部分,并加入必要的注释。

MOVAL,DAT;取第一种数

SUBAL,30H;将ASCH码转为BCD码

MOVCL,4:送移位数

SHLAL,CL;将BCD码放在AL高四位中

MOVBL,DAT1;取第二个数

SUBBL,30H;将DAT1中的ASCII码转为BCD码

ORAL,BL;将两个BCD码合并在AL寄存器中

MOVREST,AL:将压缩形式的BCD码存入REST中

HLT

第五章汇编语言程序设计

5.1答:标号在指令性指令的名字,写在指令前面,标号后必须有冒号。变量

在伪指令前是定义某一数据区所起的名字,它背面不带冒号。标号和变量均有段、

偏移量的属性,标号的类型是远和近型,变量的类型是字节、字、双字等。

5.2答:指令性指令是给CPU的命令,它是由

07H―0100HADD1

汇编程序翻译成机器语言指令,在程序运行时由CPU

00H

来执行,每条指令都对应CPU一种特定的操作。伪

00H

指令不汇编成机器语言,仅仅在汇编过程中告诉汇编

00H

程序应怎样汇编。

01H

5.3

00H

答:ADD1、ADD2、ADD3的段基址为I000H:

ADD1、偏移量为H、类型为双字;ADD2、偏移00H

量为H、类型为字节;ADD3、偏移量为2068H、00H

类型为字。

5.4••・•••

答:分派状况如右图01HHADD2

5.5答:(定义了堆栈段[81字节]、数据段(1704H

字节)和代码段)05H

0511

05H

05H

02H1006HADD1

07H

I2H

01H

9AH1009HADD2

・•••••

56H

2068HADD3

42H

41H题5.4图

题5.3图

―0100HADD1

5.6答:ADD1占有多少个字节

5.7答:1.根据设计任务,抽象出描述问题的数

学模型。2.确定实现数学模型的算法或求解的详细

环节和措施。3.绘制出程序流程框图。4.分派存

储空间及工作单元(包括寄存器)。确定数据段、堆

栈段、代码段及附加段在内存中的位置。5.根0127H题5.6图

据流程图编写程序。6.静态检查。7.上机调试。8.程

序运行,成果分析。

5.8答:源程序构造一般包括4个段,它们是代码段、数据段、附加段和堆栈

段。其中代码段是必须存在的,其他段视详细状况而定。

一般用到四种程序构造:次序构造,分支构造,循环构造,子程序构造。

5.9答:XORAX,AX

MOVDX,0

MOVAH,45H

MOVDL,AH

ANDDL,OFH

ADDDL,30H

ANDAH,OFOH

MOVCL,4

SHRAH,CL

ADDDL,30H

ADDAX,DX

HLT

5.10答:MOVAL,A

MOVBL.B

IMULBL

94H—DATA1

MOVCX,C

16H

ADDAX,CX

26H

SUBAXJ8

89H

HLT

30H

(1)从DATA1单元开始,将8个组合BCD—DATA2

码累加起来,其和(超过1字节)存入以RES55H

为首址的单元中(低位在前)c04H

图5-15.11题图74H

(2)将它们看作2个分别以DATA1、DATA2••••••一RES

为首址的4位十进制数(低位在前),求此两数

之差并存入以RES为首址的单元中。

答:1、LEASI,DATA12、LEASI,DATAl

LEADI,DATA2LEADI,DATA2

1

LEABX,RESLEABX,RES

MOVCX,7XORAX,AX

XORAX,AXMOVAX,WORDPTR[SI]

MOVAL,BYTEPTR[SI]ADDAX,WORDPTR[DI]

AAI:INCSIMOVDX,WORDPTR[SI-2]

ADDAL.BYTEPTR[SIJADCDX,WORDPTR[Dl+2|

ADCAH,0MOVWORDPTR[BX],AX

LOOPAAIMOVWORDPTR[DI+2],DX

MOVWORDPTR|BX1,AXHLT

HLT

5.12答:根据多种条件判断和比较进行操作,满足条件去做一种操作,不满

足条件去做另一种操作。每一种操作程序称为一种分支,一次判断产生两个分支,

只有一次判断的称为单重分支程序。多次判断产生多种分支,称为多重分支程产。

5.13答:MOVAL,DAT

ANDAL,DAT

JNSPOSI;若为正数转P0S1

TESTAL,01H;测试负数的奇偶性

JZM;若为负偶数转M

ORAL,BUF;若为负奇数进行'或‘运算

JMPDONE

M:XORAL,BUF;负偶数进行‘异或‘运算

JMPDONE

POSI:TESTAL,0IH:判断正数的奇偶性

JZN;为正偶数,转N

ADDAL,BUF:为正奇数进行'加'运算

JMPDONE

N:ANDAL,BUF;正偶数进行‘与'运算

DONE:MOVBUF,AL

HLT

(开始)

5.14答:实现的猎施仍是两两进行比较判断。其环节是:先取出X,Y,Z,假设

存于AL,BL,CL寄存器中。采用两数比较换位法,因AL中的数和BL,CL分别进行

比较,在AL中总是寄存中间值。程序段及流程图如右图所示:

MOVAL,DAT1

MOVBL,[DAT1]+1

MOVCL,[DAT1]+2

CMPAL,BL

JBLP1

XCHGAL,BL

LP1:CMPAL,CL

JAE*5AV

XCHGAL,CL

CMPAL,BL

JBSAV

XCHGAL,BL

SAV:MOVBUF1,AL

MOVDL,AL;

MOVAH,02H

INT21H

HLT

5.15答:LEASI,ADD1

LEADI,ADD2

XORAX,AX

MOVAL,BYTEPTR|SI]

CMPAL,30

JBAA

MOVBYTEPTR[DI],2

JMPDONE

AA:CMPAL,1

JNBBB

MOVBYTEPTRfDI],0

J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论