汇编语言程序设计.docx
- 文档编号:9523074
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:17
- 大小:24.75KB
汇编语言程序设计.docx
《汇编语言程序设计.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计.docx(17页珍藏版)》请在冰豆网上搜索。
汇编语言程序设计
一、单项选择题
1.CPU要访问的某一存储单元的实际地址称( C )
A.段地址B.偏移地址
C.物理地址D.逻辑地址
2.某存储单元的物理地址是12345H,可以作为它的段地址有( D )
A.2345HB.12345H
C.12340HD.1234H
3.将十六进制数(2AF)H用二进制表示为(B)
A、001010100111B、001010101111
C、001010101011D、001010101101
4.指令和程序是以( C )形式存放在程序存储器中
A、源程序 B、汇编程序 C、二进制编码 D、BCD码
5.与LEABX,BUF指令完全等效的指令是(C)
A.MOVBX,BUFB.LDSBX,BUF
C.MOVBX,OFFSETBUFD.MOVBX,WOKDPTRBUF
6.下列指令执行后既能使AX=0同时又使CF=0,OF=0的是(A)
A.XORAX,AXB.ANDAX,AX
C.ORAX,AXD.TESTAX,0
7.无条件转移指令JMP实现段间间接转移,转移的目标地址在(B)
A.某个字存储单元中B.某个双字存储单元中
C.某个16位通用寄存器中D.两个16位通用寄存器中
8.设NUM1EQU100
NUM2=64H
下面指令执行后,使BL中为全1的指令是(A)
A.MOVBL,NUM1EQNUM2B.MOVBL,NUM1LTNUM2
C.MOVBL,NUM1NENUM2D.MOVBL,NUM1GTNUM2
9.设非压缩BCD码(AL)=09H,(BL)=04H在执行SUBAL,BL指令后应选的校正指令是
(B)A.DAAB.AASC.DASD.AAA
10.设AX=9ABCH,DX=8765H
PUSHAX
PUSHDX
POPAX
POPDX
上述4条指令执行后,AX,DX中内容分别是(D.AX=8765HDX=9ABCH)
A.AX=9ABCHDX=8765HB.AX=9ABCHDX=9ABCH
C.AX=8765HDX=8765HD.AX=8765HDX=9ABCH
11.设SP的初值为1000H,执行指令PUSHAX后SP的值是(C)
A.OFFFHB.1001H
C.0FFEHD.1002H
12.下列指令执行后既能使AX=0同时又使CF=0,OF=0的是(A)
A.XORAX,AXB.ANDAX,AX
C.ORAX,AXD.TESTAX,0
13.在指令的操作数字段中,允许出现表达式,若BUF1与BUF2均为变量名,下面指令中正确的是(D)
A.MOVDX,BUF1*BUF2B.MOVDX,BUF1/BUF2
C.MOVDX,(BUF1*BUF2)-BUF1D.MOVDX,BUF2-BUF1
14.汇编语言源程序,可以是(D)
A.可以直接由机器执行
B.必须由编译程序生成目标程序才能执行
C.必须由解释程序生成目标程序才能执行
D.必须由汇编程序汇编成目标程序才能执行
15.设CF=1,实现AL内容乘2的指令是(C)
A.RCLAL,1B.SARAL,1
C.SHLAL,1D.RORAL,1
16.算术右移指令SAR和逻辑右移指令SHR,两条指令执行结果完全相同的条件是(A)
A.目的操作数最高位为0B.目的操作数最高位为1
C.目的操作数为任意情况D.无论什么情况都不可能完全相同
17.没有语法错误的输入指令是(A)
A.INAL,30HB.IN30H,AL
C.INDX,ALD.INAL,[BX]
18.将高级语言的程序翻译成机器码程序的实用程序是(A)
A.编译程序B.汇编程序
C.解释程序D.目标程序
19.DECBYTEPTR[BX]指令中的操作数的数据类型是(C)
A.字B.双字C.字节D.四字
20.在下列语句中,BUFFER称为(B)
BUFFERDB01H,0AH
A.符号B.变量C.助记符D.标号
21.串操作指令中,源串操作数的段地址一定在(C)寄存器中。
A.CSB.SSC.DSD.ES
22.使计算机执行某种操作的命令是(B)
A.伪指令B.指令C.标号D.助记符
23.将数据5618H存放在存储单元中的伪指令是(B)
A.DATA1DW1856H
B.DATA1DB18H,56H
C.DATA1EQU5618H
D.DATA1DB18H,00H,56H,00H
24.若AX=3500H,CX=56B8H,当ANDAX,CX指令执行后,AX=(A)
A.1400HB.77F8HC.0000HD.0FFFFH
25.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。
目前,微机中普遍采用的是(C)码。
A.BCD码B.二进制码C.ASCII码D.十六进制码
26.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为(A)
A.汇编语言B.高级语言C.机器语言D.低级语言
27.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是( B )
A.CX≠0且ZF=1B.CX≠0且ZF=0
C.CX≠0或ZF=1D.CX≠0或ZF=0
28.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是( C )
A.DAA校正指令的功能已自动加在AH中
B.进位值在AF中,校正后根据AF内容再加在AH中
C.进位值在CF中,校正后根据CF内容再加在AH中
D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中
29.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是( C )
A.指令XORAX,AX执行后,AX内容不变,但设置了标志位
B.指令ORDX,1000H执行后,将DX最高位置1,其余各位置0
C.指令ANDAX,OFH执行后,分离出AL低四位
D.NOTAX,执行后,将AX清0
30.在执行下列指令时,需要使用段寄存器DS的指令是( D )
A.STOSWB.ADDAL,CL
C.NEGBXD.INCDA[BX]
31.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是(B)
A.ADDBH,01HB.ORBH,01H
C.XORBH,01HD.TESTBH,01H
32.完成对CL寄存器的内容乘以4的正确操作是( C )
A.ROLCL,1B.MUL4
ROLCL,1
C.SHLCL,1D.MOVCL,2
SHLCL,1SHLCL,CL
33.下面各传送指令中,正确的是( C )
A.MOV[DI],[SI]B.MOV[DX+DI],AL
C.MOVWORDPTR[BX],0100HD.MOVAL,BX
34.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法( B )
A.名字的第一个字符可以是大写英文字母及小写英文字母
B.名字的第一个字符可以是字母、数字及?
、@、_
C.名字的有效长度≤31个字符
D.在名字中不允许出现$
35.要实现使BETA的值为56,应采用语句为( C )
A.BETADB56B.BETADB56H
C.BETAEQU56D.BETAEQU56H
36.REPZCMPSW指令,重复执行的终止条件是( A )
A.CX=0或ZF=0B.CX=0且ZF=0
C.CX=0或ZF=1D.CX=0且ZF=1
37.下面程序段执行后,AL中的内容是( B )
MOVAX,8833H
ADDAL,AH
DAA
A.21B.21H
C.0C1HD.0DDH
38.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为( A )
A.ZF=1B.ZF=0
C.SF=1D.SF=0
39.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMPAL,BL”指令后应跟的分支指令是( C )
A.JNCLOP1B.JALOP1
C.JCLOP1D.JGELOP1
40.在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D )
A.STOSWB.LODSW
C.SCASWD.CMPSW
41.DA1DW‘AB’,‘CD’,‘EF’,‘GH’
MOVAX,DA1+3
指令执行后AX中的内容是( D )
A.‘EF’B.‘CD’
C.‘BC’D.‘FC’
42.使用DOS系统功能调用时,使用的软中断指令是( B )
A.INT21B.INT10H
C.INT16HD.INT21H
43.串操作指令中,目的操作数的段地址一定在(D)寄存器中
A.CSB.SSC.DSD.ES
44.在下列语句中,AGAIN称为(C)
AGAIN:
INCSI
A.符号B.助记符C.标号D.变量
45.DOS系统功能调用中,显示单个字符的系统调用号是(B)H。
A.01HB.02HC.08HD.09H
二、填空题
1.假设BL=0C5H,CL=2,CF=1,确定下列各条指令独立执行后,BL和CF中的值,并填入括号中。
A.SHRBL,1;BL=(62H)CF=
(1)
B.SARBL,CL;BL=(0F1H)CF=(0)
C.RORBL,1;BL=(0E2H)CF=
(1)
D.RCLBL,CL;BL=(17H)CF=
(1)
2.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。
目前,微机中普遍采用的是___ASCII,___码,称为美国__标准信息交换____码。
()
3.8086/8088CPU中,有二个变址寄存器,分别是__SI_和__DI__,二个指针寄存器,分别是___SP___和__BP____。
4.十六进制数0FFF8H表示的十进制正数为__+65528_,表示的十进制负数为__-32760_。
5.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,(SI+COUNT)中,源操作数的有效地址EA为_20A8H_,其物理地址为_11488H_。
(20A8H;11488H)
6.当标志位__CF__=1时表示无符号数运算产生溢出,而当标志位________=1是表示带符号数运算产生溢出。
(CF;OF)
7.如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是__IP___,而后两个字节存放的是_CS__。
(IP;CS)
8.在串操作程序中,通常在重复前缀指令REPZ或REPNZ后,选用的串操作指令是_STOS__或__CMP_才有实际意义。
(STOS;CMP)
9.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是_CS__、__DS__、_ES_、_SS__。
(.CSDSESSS)
10.现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(31201H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。
A.ADDAX,1200H;问AX=________HZF=________
B.SUBAX,BX;问AX=________HZF=________
C.MOVAX,[BX];问AX=________HCF=________
D.NEGWORDPTR[1200H];问(31200H)=________HCF=________
(A.3200H0
B.0E00H0
C.0250H不影响
D.0B0H1)
11.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,
试计算出下列各种寻址方式下的有效地址,填入括号中。
A.使用D的直接寻址(0A2B1H)
B.使用BX的寄存器间接寻址(1000H)
C.使用BX和D的寄存器相对寻址(0B2B1H)
D.使用BX、SI和D的相对基址变址寻址(0B3B1H)
E.使用BX、SI的基址变址寻址(1100H)
(A.0A2B1HB.1000HC.0B2B1HD.0B3B1HE.1100H)
12.8086/8088存贮器地址分段时,每个段起始地址的特征是___________。
(在16进制表示的地址中,最低位为0;或者二进制表示的地址中,最低4位为0)
13.执行带符号数字节相乘指令IMULBL后,CF=1,OF=1意味着___________。
(乘积的高八位不是低八位的符号位扩展)
14.ARRAYDB0,2DUP(1,2),0,3汇编时生成的数据依次是___________。
(0,1,2,1,2,0,3)
15.CPU的标志寄存器中标志位,可以分为两大类,其中一类称为__状态_标志位,另一类称为_控制__标志位。
(状态;控制)
三、简答题
1.在汇编源程序时,下面数据段共分配多少个字节存储单元?
变量BUF的偏移地址是多少?
DATASEGMENT
ORG$+20H
DA1DB10HDUP(2,3)
DA2DW10HDUP(2,3)
ORG$+20H
BUFDDDA1,DA2
DATAENDS(共分配0A8H字节存储单元,BUF的偏移地址是0A0H)
2.设BX=0FFFFH,下面指令序列中,每条指令执行后,分别为0,1表示SF、ZF、CF的值,若对标志位无影响,用斜杠/表示
SFZFCF
STC//1
XORBX,BX____0______1_____0_______
ADDBX,8001H___1_______0______0______
SARBX,1___1_______0______1______
(//1
010
100
101)
3.如果执行NEGAL指令后AL中的内容仍保持不变,那么AL中的值是多少?
执行后OF的值又是多少?
(AL=-128或80H;
OF=1)
4.已知:
BX=1357H,DI=2000H,DS=2000H,CS=4000H,分别指出下面各指令中存储器操作数的物理地址。
(1)MOVAL,[BX]
(2)MOVCS:
[BX+DI],AH
(21357H;43357H)
5.0P1DB1,2
0P2DW3412H,5678H
MOVAX,OP1+1;字单元(OP1+1)
AX
MOVBL,OP2+1;字节单元(OP2+1)
BL
上述二条传送语句有语法错误,请根据注释字段的说明,将其改正。
(MOVAX,WORDPTR(OP1+1)
MOVBL,BYTEPTR(OP2+1))
6.下列语句在存储器中分别为变量分配多少字节?
(1)AD2DW10DUP(?
),
(2)AD3DD100DUP(?
)
(22,400)
7.简述下面两条指令分别是什么语法错误?
MOV[BX],[SI]
MOVAX,DL
(MOV指令不能在两个存储器操作数之间进行;
操作数类型不匹配)
8.请指出下列指令错误原因:
A.ORAX,[CX]
B.ADD[SI],[BX][DI]
C.JMPBYTEPTRLOOPS
D.SARAX,4
E.RCLDX
(A.CX不能作为间接寻址寄存器
B.加法指令不能完成存储单元之间的加法运算
C.转移指令中,转向标号地址的属性说明错
D.移位指令格式错,当移位次数大于1时,需用CL给出
E.指令中应指出移位次数)
9.A.下面两个语句有何区别?
X1EQU1000H
X2=1000H
B.下面的程序段有错吗?
若有,请指出错误。
CRAYPROC
PUSHAX
ADDAX,BX
RET
ENDPCRAY
(A.第一个语句中,X1不能多次赋值,而X2可以多次赋值
B.程序最后一行有错,应写成:
CRAYENDP)
10.假设程序中的数据定义如下:
ARRAY1DW?
ARRAY2DB16DUP(?
)
ARRAY3DD?
PLENTHEQU$-ARRAY1
问PLENTH的值为多少?
它表示什么意义?
(22它表示ARRAY1到ARRAY3所占存储单元的字节数)
11.试根据以下要求,分别写出相应的汇编语言指令。
A.把AX寄存器和BX寄存器的内容相加,结果存入AX中。
B.用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中。
C.把数OBEH与AH内容相加,结果送回AH中。
D.用SI和位移量0200H的寄存器相对寻址方式把存储器中的一个字与AX相加,并把结果送回存储单元中。
E.用位移量0860H的直接寻址方式把存储器中一个字与数2EA0H相加,结果回送存储器中。
(A.ADDAX,BX
B.ADDDL,[BX][SI]
C.ADDAH,OBEH
D.ADD[SI+0200H],AX
E.ADD[0860H],2EA0H)
12.程序在数据段中定义的数组如下:
ARRAYDB‘YESIS’
DB20
┇
DB‘DONOT’
请指出下列指令是否正确?
若不正确,错在哪里?
A.MOVBX,OFFSETARRAY
MOVAX,[BX+8]
B.MOVAX,ARRAY
C.MOVBX,2
MOVSI,3
MOVAX,ARRAY[BX][SI]
D.MOVBX,2*2
MOVSI,3
MOVAX,OFFSETARRAY[BX][SI]
INC[AX]
(A.正确
B.数据类型不匹配错
C.前两条指令正确,第三条数据类型不匹配
D.前两条正确,后两条不正确,在汇编过程中,OFFSET操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值在汇编指令时还是未知的,所以第三条指令不正确。
第四条指令中,AX不能作为基址寄存器用。
)
13.如TABLE为数据段中0100单元的符号名,其中存放的内容为0FF00H,试问以下两条指令有什么区别?
指令执行后,AX寄存器的内容是什么?
(3分)
MOVAX,TABLE
MOVAX,OFFSETTABLE
(第一条指令传送的是0100H单元中的内容AX=0FF00H
第二条指令传送的是地址0100HAX=0100H)
14.分别指出下列指令中源操作数的寻址方式:
(5分)
A.MOVSI,100
B.MOVCX,DATA[SI]
C.MOV[SI],AX
D.ADDAX,[BX][DI]
E.POPHF
(.A.立即寻址
B.寄存器相对寻址
C.寄存器寻址
D.基址加变址寻址
E.寄存器寻址)
四、程序设计题
1.试编写出把DX、AX中的双字右移四位的程序段。
MOVCL,04
SHRAX,CL
MOVBL,DL
SHRDX,CL
SHLBL,CL
ORBL,AH
2.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。
2.DATASEGMENT
PATTERNDB23H,24H,25H,26H
DISPLAYDB80DUP(‘’),‘$’
DATEENDS
CODESEGMENT
CLD
LEASI,PATTERN
LEADI,DISPLAY
MOVCX,80
REPMOVSB
MOVAH,09H
LEADX,DISPLAY
INT21H
RET
CODEENDS
3.试编写使AL寄存器中的无符号数乘20的程序段。
MOVAH,00
MOVBX,AX
MOVCL,02
SHLAX,CL
MOVDX,AX
MOVAX,BX
MOVCL,03
SHLAX,CL
ADDAX,AX
ADDAX,DX
4.编写程序将ELEMS中的100个字节数据的位置颠倒过来(即第一个字节和第100个字节的内容交换,第二个字节和第99个字节的内容交换……)。
MOVCX,50
LEASI,ELEMS
LEADI,ELEMS+99
REVERSE:
MOVAL,[SI]
XCHGAL,[DI]
MOV[SI],AL
INCSI
INCDI
LOOPREVERSE
5.试编制一程序段,用串操作指令实现以DA_BY为首址的20H个字节单元中存放相同字符‘Y’(设DA_BY存储区已有ES指向)。
LEADI,DA_BY
MOVCX,32
MOVAL,‘Y’
CLD
REPSTOSB
6.用字符串指令编制一程序段,把以DAT1为首址的数据区中的100个字节数据依次传送到以DAT2为首址的数据区中。
要求:
在程序中按地址递减方式进行数据传送。
STD
MOVCX,100
LEASI,DAT1
LEADI,DAT2
ADDSI,CX
ADDDI,CX
DECSI
DECDI
REPMOVSB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计