汇编语言复习题doc.docx
- 文档编号:28662101
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:17
- 大小:21.59KB
汇编语言复习题doc.docx
《汇编语言复习题doc.docx》由会员分享,可在线阅读,更多相关《汇编语言复习题doc.docx(17页珍藏版)》请在冰豆网上搜索。
汇编语言复习题doc
汇编语言复习题
三、简答题
115、分别说明下列两组指令屮两条指令操作的相同点和不同点
(1)SUBAX,BX和CMPAX,BX
(2)ANDCX,DX和TESTCX’DX
116、指令和伪指令的关系是什么?
117、I/O设备有哪儿种数据传送方式?
它们各自有什么特点?
118、子程序的递归和重入有何异同?
子程序要具有可重入性,编程时要注意的事项为什么?
119、写出允许串行通讯口2的屮断请求的代码(不能改变原有其他设备的屏蔽状态)。
120、CPU响应某外部设备的中断请求,要满足什么条件?
121、说明下述四条指令中哪些需要加上PTR伪操作?
XIDW10H,20HY1DW1000H
(1)
MOVBX,OFFSETXI
MOVAL,X1
⑵
MOVDL,[BX+2]
⑶
SUB[BX],2
⑷
ADDAL,Yl+1
122、有符号定义语句如下,问L的值是多少?
BUFFDB1,2,3/123’
EBUFFDW0LEQUEBUFF-BUFF
123、如下指令序列执行完后,AX值和进位标志寄存器CF的值是什么?
MOVAX,1234HMOVCL,4ROLAX,CL
124、试述CMPAX,BX和SUBAX,BX两条语句的异同点?
125、比较屮断响应过程与子程序调用的异同。
126、编写将DX:
BX:
AX中的数右移4位的功能程序诀。
127、简述8086CPU的中断响应过程。
128、IBMPC要存取CMOS芯片内部的内容,要分那两步?
129、简述IBMPC完成DMA传送的步骤。
130、按题意写出合适的指令语句,每小题写一条指令
(1)把DX寄存器和CX寄存器的N容相减,结果存入DX寄存器屮。
(2)用BX和SI的基址变址寻址,将存储器中的一个字传送到CX寄存器中。
(3)取数组ARRAY的起始地址到BX寄存器中。
(4)将DX寄存器的高四位置1
131、已知数据段定义如下:
DATASEGMENTVADB10HVBDW3*20MSGDB’HELLO!
’
COUNTEQU15
BUFDWCOUNTDUP(5,3DUP(l,2),0)
DATAENDS
问题:
(1)执行MOVBX,OFFSETVA后,(BX)=?
(2)执行MOVCX,TYPEBUF后,(CX)=?
(3)用一条指令将字母’CV取到AL屮.
(4)经汇编后,BUF占有的存储空间是多少个字节
132、在指令系统屮,段6、段间返回均为RET指令。
试回答:
(1)执行段内返回RET指令时,执行的操作是:
(2)执行段间返回RET指令时,执行的操作是:
133、设某数据段:
DATASEGMENT
ORG20HNUM1=8
NUM2=NUM1+1OHDAIDB•COMPUTER1
DBOAH,ODHCOUNTEQU$-DAlDA2DW,CO,,,MP,;UT7ER,
DATAENDS
试回答:
(1)DAI的偏移地址是:
(2)COUNT的值是
(3)DA2+5字节单元的内容是
134、当段重叠时,一个存储吊元的地址可表示成多个逻辑地址。
请问物理地址12345H可表示为多少个不同的逻辑地址?
偏移最大的逻辑地址是什么?
偏移最小的逻辑地址是什么?
135、完成将数据W/B’AO/C’/D’AO顺序存放在以BUFFER为首址的数据区中,请分别用数据定义伪指令DB,DW和DD语句实现。
136、用三种不同的方法写出将字变量SRC和字变量DST的内容互换的程序段。
137、有如下数据定义:
DAIDB20HDUP⑺
DA2DW1()H,45H,7856H
请用两种办法,分别只用一条指令实现将DA1数据区屮数据个数送CX。
138、选择合适的指令,分别完成下列操作:
(1)将字变量VARW的偏移地址送BX寄存器;
(2)将字变量VARW的|Aj容送CX寄存器;
(3)将字变量VARW的类型送DX奇存器。
139、设有数据定义伪指令如下:
ORG2000H
ARRAYDW0100H,0200H,$+2,0300H,$+2
请画出存储单元数据的存储形式:
四、程序分析题
140、MOVAX,9090H
SUBAX,4AE0H
JCL1
JOL2
JMPL3
上述程序执行后AX=,程序转14。
141、假设寄存器AX=1234H,DX=0A000H
MOVBX,0
MOVCX,BX
SUBCX,AX
SBBBX,DX
MOVAX,CX
MOVDX,BX
上述程序段执行后AX=,DX=,程序功能是
142、BUFDB45H,68H,7AH,35H,39H
I
I
I
MOVDI,OFFSETBUF
MOVCX,5
MOVAL,'a*
CLD
REPSTOSB
该程序段执行后,BUF中的内容是,方向标志DF=
143、假设寄存器AX=5AH,CX=23H
MOVDL,0
LOP:
SUBAX,CXJCNEXTINCDL
JMPSHORTLOP
NEXT:
ADDAX,CXHLT
上述程序段执行后,AX=,DL=
用数学表达式指明程序功能:
144、阅读如下程序段,回答所提岀的问题,假定X1,X2,...XN为无符号数。
ORG100H
BLOKDWX1,X2,..”XNCOUNTEQU($-BLOK)/2RESULTDWCOUNT,?
I
I
I
LEABX,BLOK-2MOVCX,RESULTXORAX,AX
GOON:
ADDBX,2CMPAXJBX]
JAENEXTMOVAXJBX]
NEXT:
LOOPGOON
MOVRESULT+2,AX
程序段执行完,回答下述问题
RESULT+2字存储单元的内容=
BX=
程序循环次数=
145、设numl,num2都为字变量,各存贮一个有符号数,请指山下面语句序列的功能
MOVAX,numlXORDX,DXORAX,AXJNSSKIPMOVDX,OFFFFH
SKIP:
IDIVnum2
146、读下而程序段
MOVAX,0MOVBX,1MOVCX,5
LOP:
ADDAX,BX
ADDBX,2LOOPLOPHLT
问题:
(1)程序的功能是什么(可用算式表示)?
(2)运行后,(AX)=?
。
147、执行下列程序:
MOVAX,9B47HMOVBX,0B568HADDAX,BXJNOL1
JNCL2SUBAX,BXJNCL3JNOL4
JMPSHORTL5
问:
程序执行后,(AX)=?
程序转向哪里?
148、设寄存器AL,BL,CL屮闪容均为76H,
XORAL,0FH
ANDBL,0FHORCL,OFH
执行上述指令序列后,AL=,BL=,CL=
149、下述程序段运行后,S9开始的10个字节存储单元内容是什么?
DATASEGMENT
S9DB0,1,2,3,4,5,6,7,8,9DATAENDS
I
I
I
LEASI,S9LEADI,S9+1MOVCX,5
LOP:
MOVAL,[SI]
XCHGAL,[DI]
MOV[SIJ,ALADDSI,2ADDDI,2LOOPLOP
150][参数传递、分析下面程序段,回答指定M题:
MOVAX,0123HMOVBX,0321HPUSHAXPUSHBXPOPAXPOPBX
问AX=,BX=o
151、分析下曲程序段,指出程序完成的功能和运行结果:
MOVAL,28H;AL—初始值28H(40)
MOVAH,0;扩展AL成AXSALAX,1
MOVBX,AXSALAX,1SALAXJADDAX,BX
问:
(1)该程序段完成的功能是
(2)程序运行后AX=。
152、分析下面程序段,回答指定问题:
XORAL,AL
CALLSUBROUTMOVBL,ALCALLSUBROUTRCRAL,1HLT
SUBROUTPROCNEARNOTALJSNEXTSTC
NEXT:
RET
SUBROUTENDP
问:
程序执行后AL=,BL=。
153、XORAL,ALMOVAH,ALADDAH,9
JZNEXTXCHGAH,ALJMPK1
NEXT:
MOVAH,0FFH
Kl:
上述程序运行后,AH=,AL=。
154、XORAL,ALINCALNEGAL
INCALMOVBL,7FHADCAL,BL
上述程序运行后,AL=_,CF=_。
155、己知:
AX=1234HMOVBX,AXNEXBX
ADDAX,BX
执行上述三条指令后,AX=,BX=。
156、BUF1DB41H,42H,43H,44H,45H,46HBUF2DB6DUP(?
)
I
I
I
MOVSI,OFFSETBUF1MOVDI,OFFSETBUF2MOVCX,6
LOP:
MOVAL,[SI、SUBAL,7
ANDAL,0FHMOV[DI],ALINCSIINCDILOOPLOP
试回答:
(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?
⑵在程序功能不变的情况下,ANDAL,0FH指令可否用SUBAL,30H指令替代?
157、BUFDB*ABC$QC%$A……XYZ’
CONTEQUS-BUFF
I
I
I
CLD
LEADI,BUFFMOVCX,CONTMOVAL;$*
XORDX,DX
NEXT:
REPNZSCASBCMPCX,0JZK1INCDXJMPNEXT
Kl:
...
上述程序段运行后,DX屮的值表示的意义是什么?
158、MOVAX,00FFHMOVBX,0FFFFHXORAX,BXNEGAX
问:
该程序段执行后AX=,CF=。
159、MOVAX,BXNEGAX
ADDAX,BX
问:
该程序段执行后AX=,CF=。
当BX=O时CF=O,当BX关0时CF=1
160、BUFDW0000H
I
I
I
LEABX,BUFSTC
RCRWORDPTR[BXJ,1MOVCL,3
SARWORDPTR[BX^CL
问:
该程序段执行后,存储单元BUF的内容为
五、程序填空题
161、下列程序段求数组FLD的平均值,结果在AL中。
(不考虑溢出)
FLDDW10,-20,30,-60,-71,80,79,56
;©
MOVCX,8XORAX,AX
R1:
:
②
ADDSI,2LOOPR1MOVCL,8IDIVCLHLT
162、已知数据段DAT单元存放某一数N(-6^N^6)下面的程序段用查表法求数N的平方值,结果送SQR单元,请将程序填写完整。
TABLEDB0,1,4,9,16,25,36DATDBNSQRDB?
LEABX,TABLEMOVAL,DAT
;®
JGENEXT
;®
NEXT:
XLATHLT
163][参数传递、下面的程序通过子程序调用,将数组ARRAY的COUNT个元素求和,并将结果送SUM单元。
I
I
I
SUMDW?
ARRAYDW200DUP(?
)
COUNTDW200
I
I
I
MOVDX,OFFSETSUMPUSHBX
MOVBX,OFFSETARRAYPUSHBX
MOVBX,OFFSETCOUNTPUSHBXCALLSUMPRO
I
I
I
SUMPROPROCNEARPUSHAXPUSHBXPUSHSIPUSHDIPUSHBPMOVBP,SP
MOVSI,fBP+1;得到ARRAY的地址
MOVDI,[BP+];得到COUNT的地址
MOVCX,[DI]
MOVDI,[BP+];得到SUM的地址
XORAX,AX
NEXT:
ADDAX,[SI]
LOOPNEXT
MOVIJ,AX:
送求和结果
POP
POPDIPOPSIPOPBXPOPAXRET
SUMPROENDP
请填出用堆栈传送参数地址时,堆栈最满时的状态:
164、以下程序实现十六进制数至十进制数的ASCII码转换。
DATAXSEGMENTPARA
VALUEDW1234H;①结果数组
DATAXENDSCODEXSEGMENTPARA
ASSUME;②
MAINPROCFAR
MOVAX,DATAXMOVDS,AX
;③
MOVAX,VALUEMOVBX,1()
MOVDI,;④
LP1:
;⑤
DIVBXORDL,30H
MOVBYTEPTR[Dll,DL;⑥
LOOPLP1
MOVDX,;⑦
MOVAH,9INT21H
MOVAX,4C00HINT21H
MAINENDPCODEXENDS
ENDMAIN
165、字节变量STR屮存放着一个字符串,以0DH为结束标志,求串长度并送字变量COUNT屮。
LEASI,STR
;®
XORCX,CXGOON:
CMPAL,[SI]
INCCX
;®
JMPGOON
NEXT:
MOVCOUNT,CX
166、从键盘读入一字符串(长度小于40),将该串反转后,输山显示。
MAXNOEQU41
SSEGSEGMENTSTACKDW100DUP(?
)
SSEGENDSDSEGSEGMENT
MESG1DB.INPUTASTRINGS’
MESG2DB0DH,0AH,THEREVERSEIS:
$*
BUFDBMAXNO,?
MAXNODUP(?
)
DSEGENDSCSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEGSTART:
MOVDS,AX
MOVDX,OFFSETMESG1
MOVAH,9
INT21H
MOVDX,OFFSETBUF熠
INT21HXORAX,AX
LEA
DhBUF+2
MOV
SI,DI
ADD
SI,AX
MOV
BYTEPTR[SI];$r
DECSI
CONT:
CMP
DI,SI
:
④
MOV
AL,[SI]
XCHGALJDI]
MOV
ISIJ,AL
DEC
SI
;⑤调整DI
JMPCONTFINISHD:
MOVDX,OFFSETMESG2MOVAH,9INT21H
LEADX,BUF+2MOVAH,9INT21HMOVAX,4C00HINT21H
CSEGENDS
ENDSTART
167、设AX,BX,CX巾的数是有符号数,下列程序求AX、BX、CX中的最小值,结果在AX巾。
CMPAX,BX
;®
XCHGAX,BX
NEXT:
CMPCX,AX
XCHGAX,CX
EXIT:
168、下列程序段将AX中值乘以9
MOVCL,3
:
②
POPBX
ADDAX,BX
169、下面程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置全1。
;®
ANDAH,08H
;©
MOVAH,OFFHJMPNEXT
ZERO:
MOVAH,0
NEXT:
-
170、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
BUFDB5,6,7,58H,62,45H,127,
COUNTEQU$-BUFMAXDB?
I
I
I
MOVBX,OFFSETBUFMOVCX,COUNT-1MOVAL,[BX1
LOP1:
INCBX
;®
JAENEXTMOVAL,[BX]
NEXT:
DECCX
.级
MOVMAX,AL
171、下面程序完成将字节存储单元BUF中两个压缩BCD码拆成两个非压缩BCD码,并转换成两个对应的ASCII码,分别存放在ASC1和ASC2单元中。
BUFDBxxH
ASCIDB?
ASC2DB?
START:
MOVAL,BUFMOVCL,4
;®
ORAL,30HMOVASC1,ALMOVAL,BUF
;®
ORAL,30HMOVASC2,ALHLT
172、有两个有符号数分别存放在BUF1和BUF2单元屮,下而的程序段完成将较小的数送MIN单元。
BUF1DWxxxxHBUF2DWyyyyHMINDW?
BEGIN:
MOVAX,BUF1LEABX,BUF2CMPAX,:
®
NEXT;®
MOV•,③
NEXT:
MOVMIN,;®
HLT
173、下面程序利用DOS系统功能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入T字符时结束。
CODESEGMENTASSUMECS:
CODE
DISPLAYPROCNEAR
BEGIN:
MOVAH,01HINT21H
;®
JZSTOPCMPAL;a'
JBSTOPCMPAL/z1JASTOP
像
;®
MOVAH,02HINT2IHJMPBEGIN
STOP:
RET
DISPLAYENDP
CODEENDS
174、T面程序段的功能把DAI数据区的数转换为对应的ASCII码。
DA1DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
ASCIDB10DUP(?
)
CUNT=ASCI-DA1
I
I
I
LEASI,DA1LEADI,ASCI
;®
LOP1:
MOVAL,[SI]
;®
MOV[DI],ALINCSIINCDILOOPLOP1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 复习题 doc