汇编语言程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,OFEH,则存放字数据OFE52H的字地址是( ) A.7462H B.7463H C.7464H D.7465H
2.下列寄存器组中,在访问存储器操作数地址时,可以提供偏移地址的是( ) A.BP、BX、SI、DI B.AX、BX、CX、DX C.SP、IP D.BX、SI、DI、DS
3.当堆栈为空时,如SS=0805H,SP=40H,栈底字单元的物理地址是( ) A.08090H B.08089H C.0808EH D.08450H
4.执行POP BP指令时,源操作数的物理地址表达式是( ) A.16*SS+SP B.16*SS+BP C.16*DS+BP D.16*CS+BP 5.设ADRT=100H,不符合语法规则的语句是( ) A.MOV AX,ADRT B.MOV AX,[ADRT+SI] C.MOV [ADRT],AX D.MOV ADRT[SI],AX 6.下面XCHG指令语句中,语法正确的是( ) A.XCHG AX,DS B.XCHG BL,[BX] C.XCHG AL,OFH D.XCHG[SI],[DI] 7.设(AL)=63H(BL)=29H执行下面指令后( ) SUB AL,BL DAS
AX的内容是
A.(AX)=0304H B.(AX)=0034 C.(AX)=0034H D.(AX)=0304
8.设BX=1234H,DS=2000H,(21234H)=5678H,则指令“LEA SI,[BX]”执行后的结果是
( )
A.SI=5678H B.SI=1234H C.SI=2000H D.SI=3234H
9.设DF=0,SI=20H,CX=10,执行REP LODSW指令后,SI中的内容是( ) A.20H B.30H C.34H D.40H
10.设AL=0A8H,CL=23H,执行乘法指令MUL CL后,标志位OF,CF的值分别是( ) A.OF=1,CF=1 B.OF=1,CF=0 C.OF=0,CF=1 D.OF=0,CF=0
11.MOV BX,OFFFEH NEG BX NOT BX
上述三条指令执行后,BX中的内容是( ) A.-1 B.-2 C.-3 12.设数据段有:DA1 DB XX ;是任一数据
DA2 DB OFEH
下列两条指令:MOV DL, DA1
OR DL,DA2
执行后,DL中的内容可能是( ) A.0FFH或0FEH B.只能是0FEH C.只能是0FFH D.只能是01H 13.NUM1=200 NUM2=0C8H
MOV AL,NUM1 XOR NUM2
上述语句执行后AL中的值是( ) A.200 B.0C8H C.0 D.0FFH 14. ORG 100H NUM EQU 8042H DA1 DB 56H
MOV BX,0FFSET DA1
上述程序段执行后BX中的值是( ) A.56H B.100H C.101H 15.设数据段中定义语句 DA1 DB 12H,34H DA2 DW 12H,34H 下面有语法错误的语句是( ) ..
D.-4
D.102H
A.BUF1 DW DA1 B.MOV DA1+1,AX C.MOV BYTE PTR DA2+1,AL D.MOV WORD PTR DA1,AX 16.在同一程序段中,定义下面伪指令,错误的是( ) ..A.PORT1 EQU AL C.PORT2=2A50H AND OFFH 17.X DB 20H DUP(0) Y DW ‘7A’,‘8B’
B.PORT2=AL
D.PORT3 EQU 2A50H
PORT3 EQU 2A50H AND OFFH
MOV CH,LENGTH Y MOV CL, LENGTH X
执行上述指令后,CX中的内容是 ( ) A.0120H B.2010H C.207AH D.7A20H
18.执行SUB AX,[BP][DI]指令,取源操作数时,使用的物理地址表达式是( ) A.16*SS+BP+DI B.16*ES+BP+DI C.16*DS+BP+DI D.16*CS+BP+DI
19.BUFF单元开始,连续存放了十个字节数据,欲找出与AL中内容不同的数,并将不同数据的地址偏移量送ADR单元,应选用的指令序列是( ) A.REPZ CMPSB B.KEPNZ CMPSB JZ K1 JZ K1 MOV ADR,DI MOV ADR,DI, K1:…… K1:…… C.REPZ SCASB D.REPNZ SCASB JZ K1 JNZ K1 DEC DI DEC DI MOV ADR,DI MOV ADR,DI K1:…… K1:…… 20. TEST VAR,55H
JE ZER0 ZER0:……
上述程序段执行JE ZER0指令后能够产生分支的条件是( ) A.VAR=0 B.VAR=55H C.VAR中第1,3,5,7位均为0 D.VAR中第0,2,4,6位均为0 二、填空题(本大题共5小题,每小题1分,共5分) 21.逻辑地址由___________组成。
22.假设执行指令前BX=5678H,CL=8,指令ROL BX,CL执行后BX=___________。
23.每次进行串扫描指令SCAS时,要进行递增或递减修改的变址寄存器是___________。 24.在指令语句操作数项上,引用一个段名,就是获取段地址的___________数据。 25.VAR1 DD 10H DUP(?)语句实现留空___________个字节单元。 三、简答题(本大题共3小题,每小题2分,共6分) 26.下面指令是错误吗,哪条有错?什么错误 ①MOV 34H,BL ②XCHG DS,AX
27.完成下列操作选用什么指令或指令序列 ①将2BC0H减去1A05H
②将变量DAB1的段地址送AX。
28.设执行前SI=1000H,DS=2000H,存储单元(21000H)=1245H,下面二条指令分别执行后BX中的值各是多少? ①MOV BX,[SI] ②LEA BX,[SI]
四、程序分析题(本大题共7小题,每小题5分,共35分) 29.MOV AX,7452H ADD AL,AH DAA
XCHG AH,AL SUB AL,AH DAS
程序段运行后,AX=____________,CF=____________。 30.已知AX=7865H,BX=89AAH
CLC
ADD AX,BX OR BX,AX RCR AX,1 RCL BX,1
程序执行后,AX=____________BX=____________CF=____________ 31.①AND AL,0FAH
XOR AL,0FFH ②XOR AL,0AFH OR AL,50H
阅读上述指令,分别回答各指令序列完成什么功能? 32.DA1 DB 1AH,2BH,3CH,4DH,5EH,6FH DA2 DB 6 DUP(0)
LEA SI,DA1+5
MOV BX,0FFSET DA2 MOV CX,604H
STD
LOP: LODSB
ROL AL,CL MOV [BX],AL INC BX DEC CH JNZ LOP
①程序执行后DA2中各字节内容是什么?
②程序中ROL AL,CL是否用ROR AL,CL指令替代,其功能不变。
33. DA1 DB‘ABCDE $ FGHI’
DA2 DB $ -DA1 DUP(?) CALL SUB1
SUB1 PROC MOV BX,0
LOP:CMP BYTE PTR DA1[BX],‘$’
JZ AR
MOV AL,DA1[BX] MOV DA2 [BX],AL INC BX JMP LOP AR:RET
SUB1 ENDP
①上述子程序的功能是什么?
②返回主程序时,BX=____________。 34.AR1 DB ‘ABCDEFGH’ AR2 DB O
MOV AH,1 INT 21H ;键盘输入 AND AL,0FH DEC AL
LEA BX,AR1 XLAT AR1 MOV AR2,AL
①假设键盘输入数字4,则执行后(AR2)=____________; ②执行后CF=____________。 35.BCD1 DB 46H
MOV AL,BCD1 MOV CL,4 SHR AL,CL SAL AL,1 MOV CL,AL SAL AL,1 SAL AL,1 ADD AL,CL
MOV CL,BCD1 AND CL,0FH ADD AL,CL
上述程序段完成的功能是什么?
程序段运行结束后AL=____________。
五、程序填空题(本大题共2小题,每小题6分,共12分)
36.下面程序段是判AL和BL中的数据是否同号,若是,则把AL中的数据变负并送到AH中,否则O→AH。横线处填入适当指令(每处仅填一条指令)。
____________① JNS K MOV AH,0 JMP END0
K: ____________②
MOV AH,AL END0:……
37.已知寄存器AX和BX分别存放有二个非压缩BCD码,下面程序段完成AX+BX→AX中,请在横线中各填一条指令(假设结果小于等于99)
MOV CH,AH ADD AL,BL AAA
____________① ADC AL,BH AAA
____________② MOV AL,CH
六、编制程序题(本大题共3小题,共22分)
38.限用三条指令实现将DA1和DA2二个字节存储单元的内容进行交换。(5分)
39.试编制一程序段,用串操作指令STOSB实现向DA数据区依次相间存放字母字符A,B,……J和数字字符0~9。相间顺序是:A,0,B,1,C,2…,I,8,J,9。(设DA数据区所在段已由ES指向)。(5分)
40.已知三个带符号的字节数据a,b,c存放在ADR开始的连续单元中,若a,b,c同时为正数则FLAG单元置0,若同时为负数,则FLAG单元置1,否则FLAG单元置全1,请编写完整源程序。(12分)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务