




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题三
3.18086CPU有多少根数据线和地址线?它能寻址多少内存单元和I/O端口?
8088CPU又有多少根数据线和地址线?为什么要设计8088CPL?
解:16,20,1M
8,20,为了方便与8位外部接口或设备相连。
3.28086CPU按功能可以分为哪两大部分?它们各自的主要功能是什么?
解:8086微处理器从功能结构上可以划分为执行部件EU(ExecutionUnit)和总线接口部件BIU(Bus
InterfaceUnit)两大部分.
总线接口部件具有下列功能:物理地址的形成、预取指令、指令队列排队、读/写操作数和总线控制。
指令执行部件的功能是进行指令译码并执行指令。
3.3什么是微处理器的并行操作功能?8086CPU是否具有并行操作功能?
在什么情况下8086的执行单元EU才需要等待总线接口单元BIU提取指令?
解:并行操作是同时完成取指/操作数和执行指令操作,有。
在遇到系统复位或执行转移指令等特殊情况,指令队列被刷新时,EU才需要等待BIU进行取指操
作。或者在EU需要操作数而BIU正忙时,EU需要等待BIU执行完当前的操作,再去取操作数,等到
EU得到操作数以后,才能进行这条指令的执行操作。
3.4逻辑地址和物理地址有何区别?段加偏移的基本含义是什么?
解:逻辑地址也称相对地址或虚拟地址,它是目标程序中的地址。物理地址也称绝对地址或实地址,
它是物理存贮器的单元地址。物理地址=段基地址X16+偏移地址。
3.5基址指针BP和堆栈指针SP在使用中有何区别?
解:BP则是用来存放位于堆栈段中的一个数据区基址的偏移地址的,称作基址指针寄存器。SP给出栈
顶的偏移地址,称为堆栈指针寄存器。
3.G段地址和段起始地址是否相同?两者是什么关系?
解:段地址为段的起始单元的物理地址(低4位一般为0)除以16的结果。
段起始地址为段的起始单元的物理地址,它必须能被16整除。
段地址=段起始地址/16
3.78086CPU一般使用哪个寄存器来保存计数值?
解:CX
3.8寄存器IP的用途是什么?它提供的是什么信息?
解:用于微处理器在程序中顺序寻址代码段中的下一条指令。
给出接着要执行的指令在代码段中的偏移。
3.9寄存器FLAGES的用途是什么?它提供的是什么信息?
解:反映处理器的状态和运算结果的某些特征。
进位标志,零标志,符号标志,溢出标志,奇偶标志,辅助进位标志,方向标志,中断允许标志,
追踪标志
3.10对于数字0,对应的零标志是否为1?
解:不是,零标志是用于反映运算结果的。
3.11在实模式下,对于如下段寄存器内容,写出相应的段起始地址和结束地址:
(1)1000H(2)1234H
错误!未指定书签。与接口技术
(3)E0001I(4)ABOOH
解:(1)lOOOOH^lFFFFH(2)12340H~2233FH
(3)EOOOOH~EFFFFH(4)ABOOOH^BAFFFH
3.12在实模式下,对于如下的CS:IP组合,写出相应的存储器地址:
(1)100011:200011(2)2400H:1A0011
(3)1A00H:EOOOH(4)3456H:AB001I
解:(D12000H(2)25A00H(3)28000H(4)3E060H
3.13什么是总线周期?微处理器在什么情况下才执行总线周期?
解:把执行外部总线对存储器或I/。端口进行一次信息的输入或输出所需要的时间
称为总线周期。
①在指令的执行过程中,根据指令的需要,由执行单元EU,请求BIU执行一个总线周期。
②当指令队列寄存器已经空出两个字节,BIU必须填写指令队列的时候。
3.14一个基本的总线周期由几个状态组成?在什么情况下需要插入等待状态?
解:至少由4个状态组成,分别成为T1,T2,T3,T4.
在总线周期的T3和T4之间插入一些必要的等待状态
3.15什么叫做非规则字?微处理器对非规则字的存取是如何训行的?
解:其低位字节可从奇数地址开始,这种方式为非规则存放,这种存放的宇为非规则字
若存放的数据为8位,则将它们按顺序进行存放;若存入的数据为一个16位的字,则将字的最高
字节存于高地址单元,低位字节存于低地址单元;若存放的数据为32位的双字(这通常是指地址指针
数据),则将地址指针的偏移量(字)存于低地址的字单元中,将地址指针的段基址(字)存于高地址
的字单元中。对非规则字的存取需要两个总线周期。
3.16什么是存储器的分体结构?用什么信号来实现对两个存储体的选择?
解:1M字节的存储空间分成两个512K字节的存储体,一个是偶数地址存储体,其数据线与系统总线高
8位相连,用BHE=O作为选通信号;•个是奇数地址存储体。其数据总线与系统总线低8位相连,用Ao=O
作为选通信号
两个存储体采用字节交叉编址方式
3.17为什么8086微处理器要采用分体结构?而8088微处理器不采用分体结构?
解:8086是16位数据总线,故在组织1MB的存储器时,被分成两个512KB的存储体,分别叫做高位库
和低位库。高位库与8086数据总线中的D15〜D8相连,库中每个单元的地址均为奇数;低位库与数据总线
中的D7〜D0相连,库中每个单元的地址均为偶数。
8088因为外中数据总线为8位,因此,它所对应的1MB的存储空间是一个不分高位库和低位库的单一
存储体。
3.18堆栈的深度由哪个寄存器确定?为什么一个堆栈的深度最大为64KB?
解:堆栈的深度由SP值决定,由于16位的SP=FFFFH可最大寻址64KB,故深度最大为64KB。
3.19在实模式下,若SS=1000H,SP=2000H,AX=3000H,写出执行PUSHAX指令后SS、
SP和相应的堆栈中的内容。
解:SS=1000HSP=1FFEH
(2000H)=30H(1FFFH)=OOH
3.20在实模式下,若SS=2200H,SP=1100H,写出执行POPAX指令后SS、SP的内容。
解:SS=2200HSP=1102H
第2页共53页
3.21微处理器的WR和RD引脚信号各表示什么操作?
解:力■写控制,有效时,表示CPU正在写出数据给存储器或I/O端口
方读控制,有效时,表示CPU正在从存储器或I/O端口读入数据
3.22微处理器的ALE信号有什么作用?
解:地址锁存允许有效时,表示复用引脚:AD7〜ADO和A19/S6〜A16/S3正在传送地址信息
3.23微处理器的DT/R信号有什么作用?它在什么情况下被浮置为商阻状态?
解:数据发送/接收,表明当前总线上数据的流向.
在DMA方式下,DT/R被浮置为高阻状态
3.248086系统的最小模式和最大模式的区别是什么?是由什么引脚的信号决定的?
解:工作在最小模式时,是一个单处理器系统,所有总线控制信号有CUP直接产生。
工作在最大模式时,系统中除了主CPU夕卜,还有其他协处理器,是一个多处理器系统,这时CPU仅向
总线控制器8288提供状态信号S2SIS0,,而由8288产生所有总线控制信号,以支持构成多处理器系统。
MN/MX
3.25微处理器中为什么要使用堆栈这样的数据结构?
解:因为硬件和软件堆栈已经用于支持4个主要的计算领域:表达式计算,子程序返回地址存储,动
态分配局部变量存储器和子程序参数传递。
习题四
4.1简述存储介质和半导体存储器的基本分类情况。
解:存储器按存储介质分,有半导体存储器、磁存储器和光存储器。
半导体存储器按工作方式分,有随机存取存储器(RAM)和只读存储器(ROM);RAM又可分为双极型半
导体和单极MOS型;MOS型RAM还可以分为静态和动态的。ROM可分为掩膜ROM和可编程ROM,可编程ROM
又分为可编程PROM,可擦除可编程EPROM和电可擦除可编程EEPROMo
4.2简述静态RAM与动态RAM的区别与各自的优缺点。
解:静态RAM是靠双稳态触发器来记忆信息的;动态RAM是靠MOS电路中的栅极电容来记忆信息的。动态
RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。
所以主内存通常采用动态RAM,而高速缓冲存储器(Cache)则使用静态RAM。
4.3简述掩模ROM、PROMsEPROM和EEPROM的主要特点和应用场合。
解:MASKROM价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合。
OTPROM的价格适中,同时又拥有--次性可编程能力,适合既要求一定灵活性,又要求低成本的应用
场合,尤其是功能不断翻新、需要迅速量产的电子产品。
EPROM的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压。特点是具有可擦
除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。
EEPROM的擦除不需要借助于其它设备,它是以电信号来修改其内容的,而且是以Byte为最小修改单
位,不必将资料全部洗掉才能写入,彻底摆脱了EPROMEraser和编程器的束缚。它的最大优点是可直接用
电信号擦除,也可用电信号写入。
4.4当前新型存储器都有哪些?今后的发展趋势如何?
4.10某RAM芯片的引脚中有12根地址线,8根数据I/O线,该存储器芯片的容量为多大?若该芯片在系
统中的起始地址为1000H,其结束地址是多少?
解:4K*8,5095H
4.11某CPU有16根地址线(A0〜A15),试分析下图中片选信号百T、言■所指定的存储器地址范围。
解:CST:0000H-6FFFH,或者1000H-7FFFH,或者8000H-EFFFH
CS2-:0000H-6FFFH
4.12试为8088CPU设廿192KX8位存储器系统v共中程序区为64Kx8位,置于CPU寻址空间最高端,采
用27256(32KX8位);数据区为128K义8位,采用62256(32KX8位),置于寻址空间最低端。写出地址分
配关系,画出所设计的电路图。
解:
宙H
tt«
n
r
T.
Y7
RAM:00000-07FFFHROM:20000-27FFFH
08000-0FFFFH28000-2FFFFH
10000-17FFFH
18000-1FFFFH
习题五
5.1分别指出下列指令中源操作数和H的操作数的寻址方式。
(1)MOVBX,1000H(2)MOVBL,[BX]
(3)MOVBUF[BX],AX<4)MOVBX,[BP][SI]
错误!未指定书签。与接口技术
(5)MOV[DI],DL(6)MOVAX,RESULT
解:(1)源:立即数寻址;目的:寄存器寻址
(2)源:寄存器间接寻址;目的:寄存器寻址
(3)源:寄存器寻址;目的:寄存器相对寻址
(4)源:基址变址寻址;目的:寄存器寻址
(5)源:寄存器寻址;目的:寄存器间接寻址
(6)源:直接寻址;目的:寄存器寻址
(7)源:寄存器寻址:目的:直接寻址;
(8)源:相对基址变址寻址;目的:寄存器寻址
5.2设已知:(BX)=200011,(SI)=120H,(DS)=1200H,(SS)=20011,(BP)=300011,符号地址VAREG000H。
试问答在以下各种寻址方式下操作数存放于何处,如果是在存储单元中,则计算单元的物理地址是什么?
(1)使用BX的寄存器寻址(例如:MOVAX,BX)
(2)立即数寻址(例如:MOVAX,1234)
(3)使用BX的寄存器相对寻址(例如:MOVAX,[BX])
(4)直接寻址(例如:MOVAX,[1234])
(5)使用SI的寄存器间接寻址(例如:MOVAX,[SI])
(6)使用BP和SI的基址变址寻址(例如:MOVAX,[BP][SI])
(7)使用BX和SI的相对基址变址寻址(例如:MOVAX,[BX][S1])
解:(1)操作数在BX寄存器中;
(2)操作数在指令中;
(3)操作数在存储单元中,物理地址=15000出
(4)操作数在存储单元中,物理地址:13000H;
(5)操作数在存储单元中,物理地址=12120H;
(6)操作数在存储单元中,物理地址=05120H;
(7)操作数在存储单元中,物理地址=15120H。
5.33aW(DS)=2OOOH,(BX)=100H,(SI)=2H,(20100H)=12Hf(20101H)=34H,(20102H)=56H,(20103H)
=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H),(21203H)=65Ho试指出下列各条指令单独执行
后累加器中的内容是什么?
(1)MOVAX,1200H(2)MOVAX,BX
(3)MOVAX,[1200H](4)MOVAX,[BX]
(5)MOVAX,1100U[BX](6)MOVAX,[BX[SI]
(7)MOVAX,1100H[BX][SI](8)MOVAL,[BX]
解:(1)(AX)=1200H;(2)(AX)=100H;(3)(AX)=4C2AH;(4)(AX)=3412H
(5)(AX)=4C2AH;(6)(AX)=7856H;(7)(AX)=65B7H;(8)(AX)=XX12H
5.4指出下列指令的错误是什么?
(1)MOVBL,AX(2)MOV[BX],[BP+SI]
(3)MOVCS,AX(4)MOVDS,1000H
(5)MOVBX,[SI][DI](6)MOV[2000H],10
解:(1)类型属性不匹配;(2)两操作数都是存储单元;(3)把CS用作目的操作数
(4)立即数送段寄存器;(5)源操作数中两个均为变址寄存器;(6)类型属性不明确
5.5设当前数据段寄存器的内容为1B00H,在数据段偏移地址为2000H开始的单元内,含有一个内容为
0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段池址,试写出把该变量装入AX的指令序歹U,
并画出内存图。
解:LDSBX,[2000H]
MOVAX,[BX]
第6页共53页
5.6设当前(SP)=010011,(AX)=200011,(BX)=0B10011,试回答:
执行指令PUSHAX后,(SP)为多少?画出堆栈示意图。
再执行指令PUSHBX和POPAX后,(SP)为多少?画出堆栈示意图。
解:(1)执行PUSHAX后:(SP)=OOFEH
(2)执行PUSHBX和POPAX后:(SP)=OOFEH
5.7要求从85号端口读入一个字节数据,然后到数据段首地址为1000H的表格中换取相应的数据码,再
将该数据输出至3000号端口,试编写指令序列。
解:INAL,85
MOVBX,1000H
XLAT
MOVDX,3000
OUTDX,AL
5.8试编写将某十进制数字转换成七段代码的程序段。设该十进制数字存储在名为BCDKEY的字节变量中,
要求将转换的结果送入RESULT变量(十进制数字与相应七段代码的对应表如下)。
十进制数^0123456789
七段代码3FH06H5BH4FH66H6DH7DH07H7FH6FH
解:MOVAL,BCDKEY
MOBBX,DISPLAY
XLAT
MOVRESULT,AL
5.9根据以下要求编写相应的指令:
(1)将AX寄存器和BX寄存器的内容相加,结果存入BX寄存器。
(2)用增量指令使采用BX寄存器间接寻址的单元中的字节内容加lo
(3)用BX寄存器利位移量303的寄存器相对寻址方式把存储器中的一个字和(CX)相加,结果送回该
存储单元中。
(4)用寄存器BX和SI的基址变址寻址方式,把存储器中的•个字节与AH寄存器的内容相加,并保存在
AH中。
(5)采用合适的指令,将1000H单元中的字与1200H单元中的字相加,结果存入1000H单元。
解:(1)ADDBX,AX
(2)INCBYTEPTR[BX]
(3)ADD[BX+300H],CX
(4)ADDAH,[BX][SI]
(5)MOVBX,1000H
MOVAX,[120OH]
ADD[BX],AX
3.10设以下表达式中的变量名均为16位用符号数所在单元的地址,编写指令序列,完成下列运算(出发
运算的余数舍去):
(WXY)/(A+70)-X
(A-BXC)/(X-Y)-Z
解:(1)MOVAX,W
IMULY
MOVBX,A
ADDBX,70
IDIVBX
MOVX,AX
(2)MOVAX,B
错误!未指定书签。与接口技术
IMULC
MOVBX,AX
MOVCX,DX
MOVAX,A
CWD
SUBAX,BX
SBBDX,CX
MOVBX,X
SUBBX,Y
IDIVBX
MOVZ,AX
5.11变量VARA1和变量VARA2已定义如下:
VARA1DW23A8H,028011
VARA2DW0A210H,1248H
(1)将VARA1和VARA2单元中的对应字数据相加,结果存入VARA2指示的单元中
(2)将VARA1单元中的两个字作为双字和VARA2单元中的两个字组成的双字相加,结果存放在
VRAR2单元中,双字的存放格式都是低位字在低地址单元、高位字在高地址单元中。
解:(1)MOVAX,VARA1
ADDVARA2,AX
(2)MUVAX,VAKA1
ADDVARA2,AX
MOVAX,VARA1+2
ADCVARA2+2,AX
5.12写出完成以下组合式BCD码计算的指令序列:
BCD1+BCD2-BCD3-*DX
解:MOVAL,BCD1
ADDAL,BCD2
DAA
MOVDL,AL
MOVAL,BCD1+1
ADCAL,BCD2+1
DAA
MOVDH,AL
MOVAL,DL
SUBAL,BCD3
DAS
MOVDL,AL
MOVAL,DH
SBBAL,BCD3+1
DAS
MOVDH,AL
5.13指出下列各条指令是否正确,如不正确,则指出其错在何处。
(1)MOVCS,100011(2)ADCBX,25H
(3)ADD[BX],20(4)MULAX,BL
(5)PUSHCS(6)MOVDX,2000H
(7)ADD[BX+ST],30H(8)POPCS
(9)INC[SI](10)MOV[BX],[SI]
解:(1)错误(2)正确(3)错误(4)错误(5)正确
第8页共53页
(6)正确(7)错误(8)错误(9)错误(10)错误
5.14用逻辑运算指令分别写出完成下列要求的指令:
将BX寄存器中的高4位清零。
将CX寄存器中的第0、1两位置1。
将AL寄存器的中间4位变反。
测试AX的最高位和次高位是否为0o
解:(1)MOVAX,OFFFH
ANDBX,AX
(2)MOVAX,3
ORCX,AX
(3)MOVBL,3CH
XORAL,BL
(4)MOVBX,3FFFH
TESTAX,BX
5.15设(BX)=0A6H,(CL)=3,CF为1,试指出下列各条指令单独执行后BX中的值。
(1)SARBX,1(2)SHRBX,CL
(3)SHLBL,CL(4)SALBL,1
(5)RORBX,CL(6)RCLBX,CL
(7)ROLBH,1(8)RCRBL,1
解:(1)(BX)=0053H(2)(BX)=0014H(3)(BX)=0030H(4)(BX)=004CH
(5)(BX)=0C014H(6)(BX)=0534H(7)(BX)=0A6H(8)(BX)=00D3H
5.16已知有一32位的无符号数在(DX,AX)中,试编写指令序列,将该32位数左移4位,将低4位用
0填补;将移出的高4位存入CH的低4位中。
解:MOVCL,4
MOVCH,DH
SHRCH,CL
SHLDX,CL
MOVBL,AH
SHRBL,CL
SHLAX,CL
ORDL,BL
5.17利用移位指令、传送指令和加法指令完成乘法运算(AX)X10o
解:SALAX,1
MOVBX,AX
MOVCL,2
SALAX,CL
ADDAX,BX
5.18试分别指出在下列3种条件下执行指令SUBAX,BX时,对标志位OF、CF、SF、ZF影响的情况:
(1)(AX)=14C6H,(BX)=80DCH
(2)(AX)=42C8H,(BX)=608DH
(3)(AX)=0D023H,(BX)=9FD0H
解:⑴OF=1,CF=1,SF=1,ZF=O
(2)0F=0,CF=1,SF=1,ZF=O
(3)0F=0,CF=O,SF=O,ZF=O
错误!未指定书签。与接口技术
5.19在8086/8088指令系统中,哪些指令可以加重且前缀?重复前缀共有哪几种形式?它们的操作功能
是什么?
解:可加重复前缀的指令有:MOVS、STOS、SCAS、LODS、CMPS;
重复前缀的形式有:REP、REPE/REPZ、REPNE/REPNZ
5.20在一个名为STRING、长度为100字节的字符串中查找是否含有字符“$”,如果有则将第一次发现的
“$”字符所在单元的偏移地址送入BX寄存器中;如果未曾找到,则将0FFFFH送入BX寄存器中。
解:CLD
MOVAL,'$'
LEADLSTRING
MOVCX,100
REPNESCASB
JNEZER
DECDI
MOVBX,DI
JMPSTOP
ZER:MOVBX,OFFFFH
STOP:HLT
5.21将2000H段中名为BUFST的缓冲区中长度为200个字节的数据串移到3000H段中名为DSTST的缓冲
区中。编写两种采用不同指令实现该功能的程序段。
解:⑴MOVAX,2000H
MOVDS,AX
MOVAX,3000H
MOVES,AX
MOVCX,200
CLD
LEASI,BUFST
LEADI,DSTST
REPMOVSB
HLT
(2)MOVAX,2000H
MOVDS,AX
MOVAX,3000H
MOVES,AX
MOVCX,200
MOVSI,OFFSETBIFST
MOVDI,OFFSETDSTST
AGN:MOVAL,[SI]
MOVES:[DI],AL
INCSI
INCDI
LOOPAGN
HLT
5.22将1000段中名为DATSTR的字符串,向高地址方向平移20个字节,字符串的长度为45字节。
解:STD
MOVAX,1000H
MOVDS,AX
第10页共53页
MOVES,AX
LEASI,DATSTR+44
LEADI,DATSTR+64
MOVCX,45
REPMOVSB
HLT
5.23用其它指令完成与下列指令同样的功能
(1)REPMOVSB(2)REPECMPSW
(3)REPSTOSB(4)REPNESCASB
解:(1)AGAIN:MOVAL,[SI](2)AGAIN:MOVAL,[SI]
MOVES:[DI],ALCMPAL,ES:[DI]
INCSIINCSI
INCDIINCDI
LOOPAGAINLOOPEAGAIN
(3)AGAIN:MOVES:[DI],AL(4)AGAIN:CMPAL,[DI]
INCDIINCDI
LOOPAGAINLOOPNEAGAIN
5.24有100个学生的计算机课程成绩存放在COMPLIT缓冲区中,编写指令序列统计85分以上、60〜85分、
60分以下各有多少人,并把统计结果存入ORDER开始的三个字节单元中。
解:LEASI,COMPUT
MOVCX,100
MOVBL,10
MOVBH,0
MOVDX,0
AGAIN:MOVAL,[SI]
CBW
IDIVBL
CMPAL,9
JGERANGE1
CMPAL,8
JEGE85
CMPAL,6
JGERANGE2
INCBH
JMPNEXT
GE85:CMPAH,5
JGERANGE1
RANGE2:INCDL
JMPNEXT
RANGE1:INCDH
NEXT:INCSI
LOOPAGAIN
MOVORDER,DH
MOVORDER+1,DL
MOVORDER+2,BH
HLT
错误!未指定书签。与接口技术
5.25在内存数据区从4000H开始存放着由30个字符组成的字符串,编写指令序列,查找井统计率中空格
符的个数,并将统计结果存入4020H单元中。
解:MOVSI,4000H
MOVCX,30
SUBBL,BL
MOVAL,20H
AGAIN:CMPAL,[SI]
JNZNEXT
INCBL
NE灯:INCSI
LOOPAGAIN
MOVSI,4020H
MOV[SI],BL
HLT
5.26编写一指令序列,统计寄存器BX中内容含“1”的个数,将统计结果送入CX寄存器中c
解:SUBCX,CX
G00N:CMPBX,0
JZSTOP
SHRBX,1
JNCJUMP
INCCX
JUMP:JMPGOON
STOP:HLT
5.27试分析下列程序段:
ADDAX,BX
JNOLI
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
如果AX和BX的内容给定如下:
AXBX
(1)147BH80DCH
(2)0B568H54B7H
(3)4C28H608DH
(4)0D023H9FD0H
(5)94B7H0B568H
问在该5种条件下,以上程序执行完后程序将转向哪里?
解:⑴L1;(2)L1;(3)L2;(4)L5;(5)L5
5.28设在内存数据段中有一个由28个字节数据组成的数组,数组的起始地址为2000H,试编写程序段,
将其分成正数组和负数组,正数组存放于2020H开始的单元中;负数组存放于2040H开始的单元中。
解:MOVBX,2000H
MOVCX,1CH
MOVSI,2020H
MOVDI,2040H
L00P1:MOVAL,[BX]
第12页共53页
SUBAL,0
JSNEGAT
MOV[SI],AL
INCSI
JMPNEXT
NEGAT:MOV[DI],AL
INCDI
NEXT:LOOPL00P1
HLT
5.29在首地址为VALU的字数组中,存放有10个无符号数,编与指令序列,求出它们的平均值并存放于
BL寄存器中(只取整数)。再统计出数组中有多少个小于平均值的数,将结果存于DI.寄存器中。
解:MOVSI,0
MOVDX,0
MOVCX,DX
AVERAGE:MOVAL,VALU[SI]
CBW
ADDDX,AX
INCSI
LOOPAVERAGE
MOVAX,DX
MOVBL,10
DIVBL
MOVBL,AL
MOVSI,0
MOVDX,0
MOVCX,0
COMPARE:MOVAL,VALU[SI]
CMPAL,BL
JAEGOON
INCDL
GOON:INCSI
LOOPCOMPARE
HLT
5.30有20个ASCII码表示的分离式BCD码存放在缓冲区UNPBCD中,编写指令序列将它们转换成组合式
BCD码,即把两个相邻字节单元的数码合并成一个字节单元,高地址单元存放在高4位,低地址单元存放在
低4位,转换结果存放于PABCD缓冲区中.
解:MOVCX,14H
LEASI,UNPBCD
LEADI,PABCD
CONVERT:PUSHex
MOVAL,[SI]
SUBAL,30H
MOVBL,AL
MOVAL,[SI+1]
SUBAL,30H
MOVCL,4
SHLAL,CL
ADDAL,DL
错误!未指定书签。与接口技术
MOV[DI],AL
POPCX
ADDSI,2
INCDI
LOOPCONVERT
HLT
习题六
6.1请指出变量与标号都有哪些属性?它们的主要区别是什么?
解:变量的属性有:段属性,偏移属性,类型属性。
标号的属性有:段属性,偏移属性,距离属性。
变量和标号都是一种符号地址。变量的内容是代表存放在某些存储单元中的数据,变量名就代表这些
单元的起始地址;标号是代表一条指令目标代码的起始地址。
6.2在一个数据段中,试用伪指令定义下列数据或字符变量,并画出内存分配示意图。
⑴为十进制数58定义字节变量DEDAT
⑵为二进制数U011010B定义字节变量BINDAT
⑶为十六进制数B7A21I定义字变量11EXDAT
⑷定义6个0的字变量
⑸为字符串'Ihaveapen'定义字节变量STRING
解:(1)DEDATDB58
(2)INDATDB11011010B
(3)HEXDB0B7A2H
(4)DW6DUP(O)
(5)STRINGDB'Ihaveapen'
6.3已知在某数据段中有如下变量定义:
VRWDDW256DUP(?)
现要求对这些变量单元既能进行字操作,同时在另一种场合乂能进行字节操作,请问应该如何解决?
解:用LABEL伪指令进行字节定义:
VRBDLABELBYTE
VRWDDW256(?)
6.4已知有如下赋值语句:
ALPHAEQU100
BETAEQf25
GAMMAEQU2
试指出下列表达式的值为多少?
⑴ALPHA*100(2)ALPHAMODGAMMA+BETA
⑶(ALPHA+2)*BETA-2(4)(BETA/3)MOD5
⑸(ALPHA+3)*(BETAMODGAMMA)(6)ALPHAGEGAMMA
⑺BETAAND7(8)GAMMAOR3
第14页共53页
解:⑴10000(2)26(3)2446(4)3
(5)309(6)0FFFFH(7)08H(8)0BH
6.5分析如下程序,画出堆栈最满时各单元的地址及内容。
STASEGSEGMENTAT1000H
DW200DUP(?)
TCPLABELWORD
STASEGENDS
CCDSEGSEGMENT
ASSUMECS:CODSEG,SS:STASEG
START:MOVAX,STASEG
MOVSS,AX
MOVSP,OFFSETTOP
PUSHDS
SUBAX,AX
PUSHAX
PUSHBX
PUSHF
HOPF
POPBX
POPAX
CCDSEGENDS
ENDSTART
解:(1)10000(2)26(3)2446(4)3
6.6编写一完整的汇编语言源程序,在数据段中定义一双字变量VARLD,再在附加段中也定义一双字变量
V.ARLE,然后将这两个双字内容相加,结果存放于数据段的RESU变量中。
解:DATASEGMENT
WVLDLABELWORD
VARLDDD58A027B4H
RESUDW?,?
DATAENDS
EXTRSEGMENT
WVLELABELWORD
VARLEDD0F4C2380H
EXTRENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:EXTR
START:MOVAX,DATA
MOVDS,AX
MOVAX,EXTR
MOVES,AX
MOVAX,WVLD
ADDAX,ES:WVLE
MOVRESU,AX
MOVAX,WVLD+2
ADCAX,ES:WVLE+2
MOVRESU+2,AX
错误!未指定书签。与接口技术
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.7循环程序一般由哪几部分构成?各部分的功能是什么?
解:(D循环初始化部分。主要是设定循环的初始状态,为循环作准备。如设置循环最大次数,循环过
程中相关寄存器所需的初始值等等。
(2)循环工作部分。这是循环程序的主体部分,它完成该循环体所要实现的主要功能,如数据的传送、
运算等。
(3)循环参数调整部分。主要功能是用于修改某些数据,以保证每次循环时参与运行的某些信息能发
生有规律的变化,使完成的功能不完全重复。
(4)循环控制部分。循环控制部分是循环程序设计的关键,它根据循环控制条件来控制循环的运行和
结束,该控制功能由循环控制指令完成。
6.8设有一汇编语言源程序如下:
DATSEGSEGMENT
CONDATDB3EH,0l'7JI,68H,9CH,7FH
ORG1000H
SUMDW?
DATSEGENDS
PROSEGSEGMENT
ASSUMECS:PROSEG,DS:DATSEG
MAINPROCFAR
START:PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATSEG
MOVDS,AX
LEABX,CONDAT
MOVCX,5
XORDX,DX
NMP:MOVAL,[BX]
ANDAL,AL
JSNEXT
ADDDL,AL
JNZNEXT
INCDH
NEXT:INCBX
LOOPNMP
LEABX,SUM
MOV[BX],DX
RET
MAINENDP
PROSEGENDS
ENDSTART
简要说明此程序的功能,指出程序运行后四个通用寄存器AX、BX、CX、DX中的内容各是什么?程序运行的
结果是什么?保存在什么地方?
解:程序功能是,统计CONDAT数据区的9个字节,将正数之和送入1000H单元;将前几个为0的数的个
数送入1001H单元。
第16页共53页
程序执行结果:(AX)=0010H(BX)=1000H(CX)=O(DX)=023EHo
正数之和等于3EH保存于1000H单元中;数组前面0的个数是2,保存于1001H单元中。
6.9设内存自1000H开始的存储区中,存放有20个带符号数,试编一程序段,找出其中最小的数,存于数
据区2000H中。
解
AX,1000H
DS,AX
BX,BUFF
CX,[BX]
AX,0
s
CAN♦BX,2
DX,[BX]
DX,AX
ENEXT
JGAX,DX
•XCHG
NEXT•LOOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 豆类品种识别与质量控制考核试卷
- 电气设备批发商员工激励措施考核试卷
- 礼仪用品企业市场分析与预测模型应用考核试卷
- 稀土金属压延加工中的设备选型与采购策略考核试卷
- 材料老化分析考核试卷
- 棉织造行业人才培养与技能提升考核试卷
- 认证认可ISO健康与安全管理考核试卷
- 跨国财产申报风险管理与合同
- 知识产权评估与产业政策对接协议
- 创新人才共有产权住房分割及交易合同
- 逆变器调试报告
- 消防控制室值班记录1
- 雷尼绍探头编程课件
- 市级优质公开课一元一次不等式组说课课件
- 婚前医学检查证明
- 妇科经带胎产杂99方方歌讲解学习
- 工艺变更通知单
- 一年级音乐教案 这是什么 (市一等奖)
- 20XX-烟草车辆运输方案计划
- 苏教版二年级下册数学竞赛试卷
- 晶体几何基础
评论
0/150
提交评论