汇编语言程序设计复习题.docx
《汇编语言程序设计复习题.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计复习题.docx(10页珍藏版)》请在冰豆网上搜索。
汇编语言程序设计复习题
汇编语言程序设计_复习题
第一章汇编语言入门
1、(-127D)=()H
2、(196D)=()H
3、(-128D)补=()B
4、(01010010B)补=()D
5、(0ABH)=()D
6.将下列十进制数转换为二进制数和十六进制数:
(1)369
(2)10000
(3)4095(4)32767
7.将下列二进制数转换为十六进制数和十进制数:
(1)101101
(2)10000000
(3)1111111111111111(4)11111111
8.将下列十六进制数转换为二进制数和十进制数:
(1)FA
(2)5B
(3)FFFE(4)1234
9.下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
(1)(-85)+76
(2)85+(-76)(3)85-76
第二章寻址方式
1.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?
其物理地址值是多少?
(1)MOVAX,0ABH
(2)MOVAX,BX
(3)MOVAX,[100H]
(4)MOVAX,VAL
(5)MOVAX,[BX]
(6)MOVAX,ES:
[BX]
(7)MOVAX,[BP]
(8)MOVAX,[SI]
(9)MOVAX,[BX+10]
(10)MOVAX,[BX][SI]
2.当程序顺序执行时,每取一条指令语句,IP指针增加的值是()。
A.1B.2
C.3D.由指令长度决定的
3.若AX=349DH,CX=000FH。
则执行指令ANDAX,CX后,AX的值是()
4.下面指令执行后,改变AL寄存器内容的指令是()。
A、TESTAL,02HB、ORAL,AL
C、CMPAL,BLD、ANDAL,BL
5.MOVSP,3210HPUSHAX执行上述指令序列后,SP寄存器的值是()。
6.已知BX=2000H,SI=1234H,则指令MOVAX,[BX+SI+2]的源操作在()中。
寻址方式是()。
7.下面指令序列执行后完成的运算,正确的算术表达式应是()。
MOVAL,BYTEPTRX
SHLAL,1
DECAL
MOVBYTEPTRY,AL
8.数据段定义如下:
X1DB10H,50,1
X2DW10H,20,3
X3DD?
COUNTEQUX3-X1
变量COUNT的值是()。
9.下面的解释正确的是( )
A.指令XORAX,AX执行后,AX内容不变,但设置了标志位
B.指令ORDX,1000H执行后,将DX最高位置1,其余各位置0
C.指令ANDAX,OFH执行后,分离出AL低四位
D.NOTAX,执行后,将AX清
10.STRINGDB‘ABCDEFGHIJ'
:
MOVAH,01;从键盘输入字符1~9
INT21H
ANDAL,0FH
DECAL
XORAH,AH
MOVBX,OFFSETSTRING;‘ABCDEFGHIJ'
ADDBX,AX
MOVDL,[BX]
MOVAH,02H;显示输出
INT21H
上述程序段的功能是什么?
如从键盘输入字符‘4',程序段有什么结果?
11.下面的数据传送指令中,错误的操作是()。
(A)MOVSS:
[BX+DI],1000H(B)MOVDX,1000H
(C)MOVWORDPTR[BX],1000H(D)MOVDS,2000
12.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。
例如:
PUSHAX\
PUSHBX\保护现场
PUSHCX/
PUSHDX/
:
}恢复现场
试写出恢复现场时的指令序列。
13.现有如下数据段
DATASEGMENT
ARRAY1DB1,26,‘3456’
ARRAY2DW7,89H,10
VALEQUARRAY2-ARRAY1
DATAENDS
请问:
该数据段已占有()字节的存储空间。
14.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,(SI+COUNT)中,源操作数的有效地址EA为________,其物理地址为________。
15.在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在空行处各填上一条指令完善该程序。
┇
MOVAX,NUMW
_____________
XORDX,DX
DIVBX
MOVQUI,AX
_____________
第三章汇编语言要素
1.指出下列指令的错误:
(1)MOVAH,BX
(2)MOV[BX],[SI]
(3)MOVAX,[SI][DI]
(4)MOVMYDAT[BX][SI],ES:
AX
(5)MOVBYTEPTR[BX],1000
(6)MOVBX,OFFSETMYDAT[SI]
(7)MOVCS,AX
(8)MOVECX,AX
2.判断下列指令是否正确
()
(1)POPAX
()
(2)PUSHWORDPTR20[BX+SI-2]
()(3)ADDBX,4[BX]
()(4)MOVAX,BX+2
()(5)PUSH1234H
()(6)MOV AX,[CX]
()(7)MOV AX,65537
()(8)MOV AX,[BP]
3.某存储单元的物理地址是12345H,可以作为它的段地址有( )
A.2345H B.12345H
C.12340H D.1234H
4.当标志位_____=1时表示无符号数运算产生溢出,而当标志位______=1是表示带符号数运算产生溢出。
5.在程序执行过程中,IP寄存器中始终保存的是()。
第四五章程序题
1.下述程序段完成计算2~20之间的偶数的和,并存于AX中。
试把空白处填上适当的指令。
CXTK
XORAX,AX
MOVBX,0
___________________
CONT:
ADDAX,BX
__________________
LOOPCONT
2..下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。
试把空白处填上适当指令。
_____________________
ANDAH,08H
_____________________
MOVAH,OFFH
JMPNEXT
ZERO:
MOVAH,0
NEXT:
……
3..以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
BUFDB5,6,7,58H,62,45H,127,……
COUNTEQU$-BUF
MAXDB?
┇
MOVBX,OFFSETBUF
MOVCX,COUNT-1
MOVAL,[BX]
LOP1:
INCBX
_____________________
JAENEXT
MOVAL,[BX]
NEXT:
DECCX
_____________________
MOVMAX,AL
4.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是()。
①TESTBL,4FH
JZNEXT
②XORBL,4FH
JZNEXT
③ANDBL,4FH
JZNEXT
④ORBL,4FH
JZNEXT
5.、下面程序的功能是什么?
STRINGDB100DUP(?
)
MOVAX,SEGSTRING
MOVDS,AX
LEASI,STRING
MOVCX,100
LAB:
MOVAL,[SI]
CMPAL,’a’
JBLAB1
CMPAL,’z’
JALAB1
SUBAL,32
MOV[SI],AL
LAB1:
INCSI
LOOPLAB
6下列程序段完成什么工作?
DAT1DB30DUP(?
)
DAT2DB10DUP(?
)
┇
MOVCX,10
MOVBX,20
MOVSI,0
MOVDI,0
NEXT:
MOVAL,DAT1[BX][SI]
MOVDAT2[DI],AL
INCSI
INCDI
LOOPNEXT
7.执行下列指令后,AX寄存器中的内容是什么?
STARTDW10H,20H,30H,40H,50H
EE1DW3
┇
MOVBX,OFFSETSTART
ADDBX,EE1
MOVAX,[BX]
8.试分析下面程序段的功能是什么?
CMPAL,‘A’
JCOTHER
CMPAL,‘Z’+1
JNCOTHER
JMPLETTER
┇
OTHER:
┇
LETTER:
┇