汇编练习题.docx
- 文档编号:24695443
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:18
- 大小:22.59KB
汇编练习题.docx
《汇编练习题.docx》由会员分享,可在线阅读,更多相关《汇编练习题.docx(18页珍藏版)》请在冰豆网上搜索。
汇编练习题
一、填空或选择题
1.二进制数1010111B转换成十六进制数是()。
A.A7HB.AEHC.87HD.57H
2.设字长为8位,则有符号数-2的补码表示是()
A.10000010BB.11111101BC.11111110BD.00000010B
3.设字长为8位,则有符号数+2的补码表示是()
A.10000010BB.11111101BC.11111110BD.00000010B
4.书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加()
A.0B.DC.BD.H
5.IBMPC微机中,有符号数是用()表示的
A.原码B.补码C.反码D.BCD码
6.十进制数-48的原码是,反码是,补码是。
7.典型的微机硬件系统是由系统总线将_____中央处理器_______、___储存器______和___输入输出子系统___连接起来的。
8.计算机中唯一代表存储空间中每个字节单元的地址的是(B)
A.段地址B.物理地址C.逻辑地址D.偏移地址
9.在Intel8086微处理器中,用来保存各逻辑段的段地址的寄存器称为(C)。
A.变址寄存器B.标志寄存器
C.段寄存器D.指令指针寄存器
10.在Intel8086微处理器中,用来保存数据段的段地址的寄存器是(A)
A.DSB.ESC.SSD.CS【ES附加段,CS代码段,SS堆栈段】
11.在Intel8086微处理器中,用来保存代码段的段地址的寄存器是(D)
A.DSB.ESC.SSD.CS
12.在Intel8086微处理器中,用来保存堆栈段的段地址的寄存器是(C)
A.DSB.ESC.SSD.CS
13.微处理器Intel8086中存放下一条将要执行的指令偏移地址的寄存器(A)
A.SPB.AXC.DID.IP:
存放代码段的偏移地址始终指向下一条的首地址
14.微处理器Intel8086中存放堆栈栈顶的偏移地址的寄存器是(A)
A.SPB.AXC.DID.IP
15.下列答案中(A)反映了指令操作结果有溢出
A.OF=1B.SF=1C.ZF=1D.CF=1进位标志CF零标志ZF符号标志SF溢出标志OF奇偶标志PF辅助进位标志AF
16.下列答案中(C)反映了指令操作结果等于0
A.OF=1B.SF=1C.ZF=1D.CF=1
17.下列答案中(B)反映了指令操作结果为负数
A.OF=1B.SF=1C.ZF=1D.CF=1
18.下列答案中(D)反映了指令操作结果有进位
A.OF=1B.SF=1C.ZF=1D.CF=1
19.取指令时,默认的段寄存器是__________;堆栈操作时,默认的段寄存器是__________。
20.在实模式下,某段寄存器中装入的值为2345H,则该段的起始地址和结束地址为()。
A.2345H,0FFFFHB.23450H,3344FH
C.23450H,33450HD.2345H,12344H
21.在实模式下,某存储单元的段地址为3015H,偏移地址为0001H,则该单元的物理地址为()
A.3016HB.30151HC.30150001HD.20166H
22.如果在一个程序开始执行以前CS=0A7F0H,IP=2B40H,则存放该程序的第一条指令的存储单元的物理地址是()。
A.0AAA40HB.0D330HC.0D3300HD.0B0A40H
23.如果SS=0A7F0H,SP=2B40H,则当前堆栈栈顶的物理地址是()。
A.0AAA40HB.0D330HC.0D3300HD.0B0A40H
24.把汇编源程序变成代码程序的过程是()
A.运行B.汇编C.编辑D.链接
25.下列关于汇编程序描述正确的是()
A.用指令的助记符、符号地址、标号等符号书写程序的语言;
B.把若干个模块连接起来成为可执行文件的系统程序;
C.把汇编语言程序翻译成机器语言程序的系统程序;
D.能被计算机直接识别的语言。
26.设(DS)=2000H,(BX)=0100H,(21200H)=4C2AH,下面的指令执行后AX的内容是()
MOVAX,1100H[BX]
A.1200HB.0100HC.21200HD.4C2AH
27.设(DS)=2000H,(21100H)=12H,(21101H)=34H,下面的指令执行后AX的内容是()
MOVAX,[1100H]
A.1200HB.1100HC.3412HD.1234H
28.设(SS)=2000H,(BP)=1100H,(21100H)=12H,(21101H)=34H,下面的指令执行后AX的内容是()
MOVAX,[BP]
A.1200HB.1100HC.3412HD.1234H
29.设(DS)=2000H,(BX)=1000H,(SI)=0100H,(21100H)=12H,(21101H)=34H,下面的指令执行后AX的内容是()
MOVAX,[BX+SI]
A.1200HB.1100HC.3412HD.1234H
30.设(DS)=2000H,(BX)=1000H,(SI)=0100H,(21102H)=12H,(21103H)=34H,下面的指令执行后AX的内容是()
MOVAX,[BX+SI+2]
A.1200HB.1100HC.3412HD.1234H
31.下列指令中正确的是()
A.MOVAL,BXB.MOVCS,AX
C.MOVSI,BPD.MOV[SI],[BP]
32.已知BX=0400H,DS=1000H,(10400H)=0500H,(10402H)=0600H,执行指令LEABX,[BX+2]后,BX=()
A.0500HB.0400HC.0402HD.0600H
33.已知(SS)=2000H,(SP)=1000H,执行指令PUSHBX后,(SP)=()
A.1000HB.2000HC.1002HD.0FFEH
34.设下列程序段执行前SP=1000H,执行程序段后SP=________。
MOVAX,1234H
MOVBX,5678H
PUSHAX
PUSHBX
A.SP=1002HB.SP=1004H
C.SP=0FFCHD.SP=0FFEH
35.已知(AX)=1234H,(BX)=5678H,下述程序段执行后(AX)=_______________。
PUSHAX
PUSHBX
POPAX
POPBX
36.设SP=0040H,如果用进栈指令存入5个数据,则SP=,若又用出栈指令取出2个数据后,则SP=.
37.有程序段MOVAX,62A0H
ADDAX,1234H
上面程序段执行后,下列描述正确的是()。
A.AX=74D4H,SF=0,CF=0,OF=0,ZF=0
B.AX=A5C1H,SF=1,ZF=0,CF=0,OF=1
C.AX=3240H,SF=0,ZF=0,CF=1,OF=0
D.AX=0000H,SF=0,ZF=1,CF=1,OF=0
38.有程序段MOVAX,62A0H
ADDAX,4321H
上面程序段执行后,下列描述正确的是()。
A.AX=74D4H,SF=0,CF=0,OF=0,ZF=0
B.AX=A5C1H,SF=1,ZF=0,CF=0,OF=1
C.AX=3240H,SF=0,ZF=0,CF=1,OF=0
D.AX=0000H,SF=0,ZF=1,CF=1,OF=0
39.对于指令MULSI,默认存放被乘数的寄存器是(),乘积的高16位存放在寄存器()中。
A.AXB.BXC.CXD.DX
40.已知AX=1010H,下列()条指令不能使AX=0
A.MOVAX,0B.SUBAX,AX
C.ORAX,0D.XORAX,AX
41.指令SUBBL,BL执行后,ZF、PF、SF标志位的值为()
A.0,0,0B.1,1,1C.1,1,0D.1,0,0
42.已知AX=1234H,CL=4则执行指令ROLAX,CL后,AX=()
A.1234HB.2341HC.2340HD.4123H
43.已知AX=1234H,CL=4则执行指令RORAX,CL后,AX=()
A.1234HB.2341HC.2340HD.4123H
44.已知BX=0E3H,执行指令ANDBX,79H后,BX=()
A.9AHB.61HC.0FBHD.1CH
45.已知BX=0E3H,执行指令ORBX,79H后,BX=()
A.9AHB.61HC.0FBHD.1CH
46.已知DX=0B9H,则执行指令SHLDL,1后,DX=()
A.005CHB.0017HC.05C8HD.0072H
47.已知DX=0B9H,则执行指令SHRDX,1后,DX=()
A.005CHB.0017HC.05C8HD.0072H
48.假设AX和BX的内容是两个带符号的数,下列答案中,()能够实现当AX和BX中的内容相等时,转去执行ZERO
A.CMPBX,AXB.CMPBX,AX
JAZEROJGZERO
C.CMPAX,BXD.CMPBX,AX
JZZEROJNZZERO
49.假设AX和BX的内容是两个带符号的数,下列答案中,()能够实现当BX的内容大于AX中的内容时,转去执行ZERO
A.CMPBX,AXB.CMPBX,AX
JAZEROJGZERO
C.CMPAX,BXD.CMPBX,AX
JZZEROJNZZERO
50.循环指令LOOPZ的循环条件是()
A.CX=0且ZF=0B.CX=0且ZF=1
C.CX≠01且ZF=0D.CX≠0且ZF=1
51.循环指令LOOPNZ的循环条件是()
A.CX=0且ZF=0B.CX=0且ZF=1
C.CX≠0且ZF=0D.CX≠0且ZF=1
52.已知SS=2000H,SP=1000H,执行指令CALLNEARPTRAVE后,SS=(),SP=()。
A.2000HB.0FFCHC.20000HD.0FFEH
53.假设SP=0FFEH,SS=2200H,(22FFEH)=1234H,则在段内调用子程序FUN后,执行子程序FUN中的RET指令后,IP=()
A.22FFEHB.0FFEHC.1234HD.2200H
54.已知(SI)=2000H,(DS)=3000H,(32000H)=8605H。
则指令JMP WORD PTR[SI]执行完后IP=()
A.2000HB.3000HC.8605HD.32000H
55.下面的标识符中,()是合法的标识符,符合汇编语言的语法规范。
A.MOVB.2NEXTC.NEXTD.LENGTH
56.在下列语句中,AGAIN称为()
AGAIN:
INCSI
A.符号B.助记符C.标号D.变量
57.对于下列数据定义语句,TYPETA=()
TADB‘1234’,5
A.1B.4C.5D.2
15.对于下列数据定义语句,LENGTHTA=()
TADB‘1234’,5
A.1B.4C.5D.2
58.假设程序中的数据定义如下:
LNAMEDB20DUP(?
)
则()可以实现将LNAME的偏移地址放入寄存器BX
A.MOVBX,TYPELANME
B.MOVBX,OFFSETLNAME
C.MOVBX,LENGTHLNAME
D.MOVBX,SIZELNAME
59.在存储器中预留60个字节的空单元的伪指令是()
A.ARRAYEQU60B.ARRAYDW60
C.ARRAYDB60DUP(?
)D.ARRAYDW60DUP(?
)
60.在存储器中预留60个字的空单元的伪指令是()
A.ARRAYEQU60B.ARRAYDW60
C.ARRAYDB60DUP(?
)D.ARRAYDW60DUP(?
)
61.在使用DEBUG调试某程序段时,使用U命令后,显示如下,则指令MOVCX,0002H的机器码存放在从(①)开始的连续(②)个字节内存单元,
1000:
0000B80100MOVAX,0001
1000:
0003B90200MOVCX,0002
1000:
000601C8ADDAX,CX
①A.10000HB.10003HC.10006HD.10005H
②A.1B.2C.3D.4
二、简答题和编程
1、设机器字长为8位,x=54,y=-23,则
[x]原=_________B,[x]反=____________B,[x]补=____________B,
[y]原=_________B,[y]反=____________B,[y]补=____________B。
2、判断下列指令是否错误
1)MOVAH,BX
2)MOV[BX],[SI]
3)MOVAX,[SI][DI]
4)MOV[BX][SI],ES:
AX
5)MOVBYTEPTR[BX],1000
6)MOVCS,AX
7)MOVDS,2000H
8)POPCS
9)LEABX,4[BX]
10)SARAX,5
11)CMP[DI],[SI]
3、现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=1234H,(20102H)=5678H,(21200H)=4C2AH,(21202H)=65B7H试说明下列各条指令完成后AX寄存器的值。
1)MOVAX,1200H
2)MOVAX,BX
3)MOVAX,[1200]
4)MOVAX,[BX]
5)MOVAX,1100H[BX]
6)MOVAX,[BX][SI]
7)MOVAX,1100H[BX]SI]
4、现有(AX)=2000H,(BX)=1200H,(SI)=0002H,,(DI)=0003H,(DS)=3000H,
(SS)=3000H,(SP)=0000H,(31200H)=50H,(31201H)=02H,(31202H)=0F7H,(31203H)=90H,(CF)=1,请写出下列各条指令独立执行后有关寄存器及存储单元的内容,若该指令影响标志寄存器的标志位,则请给出标志位SF,ZF,OF,CF的值。
1)ADDAX,1200H
2)SUBAX,BX
3)MOV[BX],AX
4)PUSHAX
5)DECBYTEPTR[1200H]
6)SARBYTEPTR[SI+1200H],1
7)ROLBYTEPTR[SI+BX+1],1
8)MULWORDPTR[BX][SI]
9)ADCAX,BX
5、写出完成下述功能的程序段
1)把4600H传送给AX寄存器
2)从AX寄存器中减去0038H
3)把数组MYDAT的段地址和偏移地址保存在DS和BX中
4)从地址是DS:
0的存储单元中传送一个数据到BL寄存器
5)将数据段从STRING1开始的20个字符复制到数据段从STRING2开始的存储单元中
6)编写程序段将字符串STRING中的’&’字符用空格符代替
字符串STRING为:
YOUARETHE&BEST!
7)将AX和BX中的两个数相加,如果结果为零转去执行OK
6、已知存储器中有一个首地址为ARRAY的100个字的数组,要求数组中的每一个数加1(不考虑溢出),试写出完成此功能的程序段。
7、对于下列的数据定义,三条MOV指令分别汇编成什么(用立即数方式表示)。
TABLEADW10DUP(?
)
TABLEBDB10DUP(?
)
TABLECDB‘1234’
………
MOVAX,LENGTHTABLEA
MOVBL,LENGTHTABLEB
MOVCL,LENGTHTABLEC
8、对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
FLDBDB?
TABLEADW20DUP(?
)
TABLEBDB‘ABCD’
1)MOVAX,TYPEFLDB
2)MOVAX,TYPETABLEA
3)MOVCX,LENGTHTABLEA
4)MOVDX,SIZETABLEA
5)MOVCX,LENGTHTABLEB
9、指出下列伪指令表达方式的错误,并改正之。
1)MYDATASEGMENT
……….
ENDS
2)MAIN-PROCPROCFAR
…………
ENDMAIN-PROC
MAIN-PROCENDP
10、按要求写出程序框架
1)数据段的位置从0B000H开始,数据段中定义一个有100字节的数组;
2)代码段中制定段寄存器,主程序从1000H开始,给有关段寄存器赋值;
3)调用4CH系统功能子程序结束程序。
4)程序结束。
11、一数据段定义为:
DATASEGMENT
S1DB0,1,2,3,4,5
S2DB‘12345’
NBDB3DUP
(2)
NWDW120,-256
PDW-1
DTATENDS
(1)画出该数据段中数据的存储方式
(2)在下表中填写各变量的偏移地址和个变量的值
变量名
偏移地址
变量的值
S1
S2
NB
NW
P
(3)填写表中程序段各指令执行后,目的寄存器的值,并指出源操作数所使用的寻址方式。
程序段
目的寄存器的值
源操作数的寻址方式。
MOVBX,OFFSETS1+3
MOVSI,OFFSETS2
MOVBP,NW+2
MOVDX,WORDPTRNB
MOVAL,[SI+3]
MOVAH,[SI+BX+1]
MOVCH,BYTEPTRNW+3
12、设AX=1122H,BX=3344H,CX=5566H,SS=009BH,SP=0040H,下述程序段执行后AX,BX,CX和DX4个通用寄存器的内容是多少?
画出堆栈的物理地址及其存储内容和SP指向的示意图。
PUSHAX
PUSHBX
PUSHCX
POPBX
POPAX
POPDX
13、编写将26个英文字符‘ABC……Z’存到字节变量TABLE开始的存储区中去的程序。
14、编写一个子程序,使其可以显示以0结尾的字符串,同时要求子程序的入口参数DS:
DX为待输出字符串的首地址。
15、编写一个程序,使其可以把屏幕上显示的字母经过大小写转换后,再显示出来。
16、编写子程序时需对一些寄存器进行保护和恢复,若在某子程序的开始处有如下程序段,试写出在子程序结束时恢复现场的程序段。
FUNPROC
PUSHAX;保护现场
PUSHBX
PUSHCX
PUSHDX
……….
;恢复现场
RET
FUNENDP
17、读程序,写出运行结果
1)TABLEDW10,20,30,40,50
ENTRYDW3
…………
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
上面程序段执行后,BX=,AX=。
2)MOVAX,62A0H
ADDAX,4231H
上面程序段执行后,AX=,SF=,CF=,OF=,ZF=。
3)DA1DB‘ABCDEFGH’
………
MOVDI,OFFSETDA1
MOVAL,’D’
MOVCX,8
NEXT:
CMP[DI],AL
JZEXIT
INCDI
LOOPNEXT
MOV[DI],’C’
写出上面程序段执行后DA1各字节中的数据。
4)设寄存器AL,BL,CL中内容均为34H,
ANDCL,0FH
ORBL,0FH
RORAL,CL
执行上述指令序列后,AL=______,BL=________,CL=_________。
18、程序填空题
1)以STRING为首址的字节单元中,存放了一个字符串,字符串以0结尾,下面程序把字符串中的所有的大写字母转换为小写字母。
DATASEGMENT
STRINGDB‘HOWAREYOU!
’,0
CODESEGMENT
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETSTRING
AGAIN:
MOVAL,[SI]
ORAL,AL
JZOK
CMPAL,’A’
JBNEXT
CMPAL,’Z’
JANEXT
MOV[SI],AL
NEXT:
INCSI
OK:
MOVAH,4CH
INT21H
CODEENDS
2)设数据段中AREA1开始存放了10个字节单元的数据,下面程序段把这10个字数据传送到附加段中AREA2开始的10个字节单元。
MOVAX,SEGAREA1
MOVDS,AX
MOVDI,OFFSETAREA2
MOVES,AX
MOVCX,10
NEXT:
MOVAL,[SI]
MOVES:
[DI],AL
DECCX
JNZNEXT
3)下面的子程序统计一个8位二进制数中的为1的为的个数。
调用该子程序时,8位二进制数存放在AL中。
子程序返回时,求出的个数存放在BL中,要求AL的内容保持不变。
填充程序中的空白,除非必要,不要写标号。
MOVBL,0
MOVCL,8
A1:
SHLAL,1
JNCA2
A2:
DECCL
JNZA1
POPAX
NUMENDP
4)下面程序段完成功能:
从键盘输入一个字符,然后输出在屏幕上。
读程序段,完成程序。
MOVAH,
I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 练习题