武汉理工大学汇编语言试题(三套,内含答案,2012年期末考试绝大

更新时间:2024-03-05 02:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《汇编语言程序设计》试卷

模拟试卷一

一、单项选择题(本大题共20小题,每小题1分,共20分)

在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.用户为了解决自己的问题,用汇编语言所编写的程序,称为 ( ) A)目标程序 B)源程序 C)可执行程序 D)汇编程序 2.指令指针寄存器是 ( )

A)BP B)IP C)SP D)PSW

3.当堆栈为空时,如SS=0805H,SP=40H,栈底字单元的物理地址是 ( ) A)08090H

B)08089H C)0808EH

D)08450H

4.下面指令中,源操作数的寻址方式为立即寻址的是 ( ) A)MOV AX,OFFSET A C)MOV AX,A+1 A)MOV [DI],[SI]

B)MOV AX,A D)MOV AX,A[BX]

5.下面各传送指令中,正确的是( )

B)MOV [DX+DI],AL

C)MOV AL,BX D)MOV WORD PTR [BX],0100H

6.已知CS=2300H,DS=2400H,执行下列指令序列后,CS和DS值是 ( )

PUSH CS POP DS A)CS=0

B)CS=2400H

C)CS=2400H

D)CS=2300H

DS=2300H DS=2300H DS=2400H DS=2300H 7.执行下面指令语句,则AX= ( )

MOV AL,95H CBW A)0095H

B)0F95H C)0FF95H

D)9095H

8.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是 ( )

A)表示结果中含1的个数为偶数 B)表示结果中含1的个数为奇数 C)表示该数为偶数 D)表示结果中低八位含1的个数为偶数 9.设AX=1000H

NEG AX NOT AX

执行上述指令后,正确的结果是( )

A)AX=1001H B)AX=0FFFH C)AX=1000H D)AX=0111H 10.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是 ( ) A)MOV AL,00H B)AND AL,00H C)XOR AL,AL D)SUB AL,AL 11.将CX寄存器低4位清零的正确指令是 ( ) A)AND CX,0F0H

B)AND CX,0FFF0H

C)AND CX,1110H D)MOV CX,0

12.执行后使BX=0的同时也使CF=0,OF=0的指令是 ( ) A)XOR BX,BX B)OR BX,BX C)AND BX,BX D)CMP BX,BX

13.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是 ( ) A)CX=0且ZF=0 B)CX=0且ZF=1 C)CX=0或ZF=0 D)CX=0或ZF=1 14.条件转移指令JBE产生转移的条件是( ) A)CF=0 OR ZF=0 B)CF=0 OR ZF=1 C)CF=1 OR ZF=0 D)CF=1 OR ZF=1

15.比较BX和SI中的两个存储器地址,若BX≥SI转向HIGH的正确指令是 ( ) A)JAE HIGH A)DX中 A)字

B)JBE HIGH C)JEG HIGH B)DL中 C)CX中 B)双字

C)字节

D)JLE HIGH D)CL中 D)四字

16.循环指令Loop规定循环次数必定在寄存器 ( )

17. DEC WORD PTR[BX]指令中的操作数的数据类型是 ( ) 18.下面指令执行后,变量DAB中的内容是 ( ) DAW DW 2A05H DAB DB 0FAH :

MOV AL,BYTE PRT DAW SUB DAB,AL

A)0DAH B)0FAH C)0F5H D)0D0H 19. 使用汇编语言的伪操作命令定义 ( ) VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则在VAL存储区内前十个字节单元的数据是 A)1,2,3,3,2,1,0,1,2,3 B)1,2,3,3,3,3,2,1,0,1 C)2,1,2,3,3,2,1,0,2,1 D)1,2,3,3,3,1,0,1,0,1 20.设NUM=60H,表达式

(NUM LT 60H AND 30)OR(NUM GE 60H AND 40)的值是 ( )

A)0

二、填空题(本大题共5小题,每空1分,共20分)

1.INTEL 8088 管理的存储器空间最大容量为______________,I/O端口地址空间最大容量为_____________。

2.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是______。

3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是________、________、________、________。

4.现有(AX)=2000H,(BX)=1200H,(DS)=3000H,(DI)=0002H,(31200H)=50H,(31201H)=02H,(31202H)=40H,(CF)=0。请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。

①ADD AX,1200H; 问AX=________H ZF=________ ②SUB AX,BX; 问AX=________H ZF=________ ③MOV AX,[BX]; 问AX=________H CF=________

B)30H C)40 D)0FFFFH

④NEG WORD PTR[1200H]; 问(31200H)=________H CF=________

5.设(DS)=2200H,(BX)=1000H,(SI)=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,填入横线上。

①使用D的直接寻址 ________ ②使用BX的寄存器间接寻址 ________ ③使用BX和D的寄存器相对寻址 ________ ④使用BX、SI和D的相对基址变址寻址 ________ ⑤使用BX、SI的基址变址寻址 ________

三、简答题(8分)

设当前(SP)=0100H,(SS)=0300H,(PSW)=0240H,在内存段地址为0900H及偏移地址为00A0H的单元中有一条中断指令INT 11H(该指令占两个字节),试问执行这条INT 11H指令后,SP、CS、IP、PSW的内容是什么?栈顶的三个字是什么(画出堆栈示意图)?

PC机内存中的一段数据如下:

0000:0040 B3 18 8A CC 4D F8 00 F0--41 F8 00 F0 C5 18 8A CC 0000:0050 39 E7 00 F0 A0 19 8A CC--2E E8 00 F0 D2 EF 00 F0 8086 CPU中PSW内容如下: 15

四、程序分析题(本大题共3小题,共20分) 1.阅读下面的程序段(6分)

NUM DB ?

MOV AH,1 INT 21H CMP AL,39H JBE NEXT SUB AL,7

NEXT:SUB AL,30H

MOV NUM,AL 上述程序段运行后,

(1)若输入’F’,则(NUM)=_____ (用二进制表示) (2)若输入’8’,则(NUM)=_____ (用二进制表示) (3)该程序段的功能是_____。 2. 阅读下面的程序段 (6分) MOV CX,16

MOV BX,0

MOV DX,1 AG:TEST AX,DX JZ NEXT

INC BX NEXT:SHL DX,1 LOOP AG

请回答:(1)该程序段的功能是什么?

14 13 12 11 OF 10 DF 9 IF 8 TF 7 SF 6 ZF 5 4 AF 3 2 PF 1 0 CF (2)若程序执行前 (AX)=1234H,程序执行完后 (BX)= BUF1 DB -1,2,-3,4,-5,6,-7,8,-9 BUF2 DB 9 DUP(0) ┇ XOR BL,BL MOV SI,0 MOV CX,9

3.阅读下面的程序段 (8分)

LOP:MOV AL,BUF1[SI]

TEST AL,80H JZ K INC BL NEG AL K:XOR AL,01H

MOV BUF2[SI],AL INC SI LOOP LOP

??

(1)写出程序运行后BUF2中的各字节数据 (2)BL=______________

五、程序填空题(本大题共2小题,每小题6分,共12分)

1.下面程序段是判断两个存储单元是否同为正数,如是,则AX置全0,否则AX置非0。试在空白处各填上适当的一条条件转移指令(两空白处要利用不同的标志位选用不同的条件转移指令)。

VAR1 DW ×××× VAR2 DW ×××× ┇

MOV AX,VAR1 MOV BX,VAR2 XOR AX,BX ①

TEST BX,8000H

② MOV AX,0

NEXT:??

2.已知数据段DAT单元存放某一数N(-6≦N≦6)下面的程序段用查表法求数N的平方值,结果送SQR单元,请将程序填写完整。

TABLE DB 0, 1, 4, 9, 16, 25 DAT DB N SQR DB ? LEA BX, TABLE MOV AL, DAT ① JGE NEXT

② HLT

NEXT:XLAT

六、编制程序题(本大题共2小题,共20分)

1.在N1和N2两数据区中,分别有10H个带符号数。试编制一源程序,找出对应项中较小的数据,并将这些较小的数据存入N3数据区中。 DATA SEGMENT

N1 DB ××,××,××?? N2 DB ××,××,××?? N3 DB 10H DUP(0) DATA ENDS

2.编程序计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。 DATA SEGMENT

BUF DW ××,××,××,?? SUM DW ? DATA ENDS

模拟试卷二

一、单项选择题(本大题共20小题,每小题1分,共20分)

在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.将汇编语言的程序翻译成机器码程序的实用程序是 ( ) A)编译程序

B)汇编程序 C)解释程序

D)目标程序

D)AF,OF,SF D)64K个字节

2.标志寄存器中属于控制标志位的是 ( )

A)DF,OF,SF B)DF,IF,TF C)OF,CF,PF 3.8088/8086存储器分段,每个段不超过( ) A)64K个字

B)32K个字节 C)1M个字节

4.已知DS=12A0H,ES=22A0H,SS=33A0H,BP=0174H,指令“MOV AX,DS:[BP]”中源操作数的物理地址是 ( ) A)12A074H

B)22B74H C)33B74H

D)12B74H

5.下面的数据传送指令中,错误的操作是 ( ) A)MOV SS:[BX+DI],1000H B)MOV DX,1000H C)MOV WORD PTR[BX],1000H D)MOV DS,2000H 6.已知SP=2110H,执行POP AX后,SP寄存器的值是 ( ) A)2111H

B)2112H C)210FH

D)210EH

7.执行下面指令语句,则AX= ( )

MOV AL,85H CBW A)0085H

B)0F85H C)0FF85H

D)8085H

LEN EQU $-NUM MOV AX,LEN

执行后,AX中的内容是 ( )

A)11H B)12H C)16H D)17H 19.DA1 DW 2A05H

DA2 DB 0FAH

MOV AL,BYTE PTR DA1 SUB DA2,AL

上述指令执行后,DA2中的内容是( ) A)0DAH

B)0FAH C)0F5H

D)0D0H

20.下面语句中能和指令MOV AX,NOT 0FH等效的是 ( ) A)MOV AX,0FFFFH B)MOV AX,0FH C)MOV AX,0FFF0H D)MOV AX,0F0FFH

二、填空题(本大题共6小题,每空1分,共20分)

1.在汇编语言中有三种指令:其中______________用于定义常数、变量、内存空间的分配和定位,它一般在______________时被解释。______________在CPU设计时被定义,并在______________时控制计算机操作。另一种指令是______________,它用于代表一段程序,它在______________时定义。

2.CPU的标志寄存器中标志位,可以分为两大类,其中一类称为________标志位,另一类称为________标志位。

3.设TABLE为数据段中0032H单元的符号名,其中存放的内容为1234H,问指令 MOV AX,TABLE 执行后,(AX)=______________;

LEA AX,TABLE 执行后,(AX)=______________。

4.已知:(AX)=01CDH,(BX)=0AFH,(CX)=0BE02H,CF=1,写出单步执行每条指令时CF、ZF及相关寄存器的内容。

TEST AX,BX ;(AX)= ______________H,(BX)= ______________H ;CF=______________ ,ZF=______________ ROL BX,CL ;(BX)= ______________H,(CL)= ______________H 5.乘法指令“MUL CL”执行后,16位的乘积存放在______中。

6.DD指令以_______________为单位分配存贮;DW指令以__________为单位分配存贮。 “VAR DB 5 DUP(8,2 DUP(5))”语句汇编应分配______个字节单元。

三、简答题(本大题共2小题,每小题4分,共8分) 1.分别指出下列指令中源操作数的寻址方式 ①MOV SI,100

②MOV CX,DATA[SI] ③MOV [SI],AX ④ADD AX,[BX][DI] 2.设有数据定义如下:

ARRAY DW 1000H,2000H,3000H,4000H,5000H BUF DW ?

要求完成:(1)用一条指令完成将ARRAY的偏移地址送BX;

(2)用一条指令完成将ARRAY的第一字节单元内容送AL;

(3)用一条指令完成将ARRAY数组的长度(字节数)送CX。

四、程序分析题(本大题共3小题,共20分) 1.(4分)分析下面程序段 MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL

试问程序段执行后(BL)=______(AL)=______

2.(8分)DA1 DB 87H DA2 DB ? ┇

MOV AH,0 MOV AL,DA1 MOV CL,4 SHR AL,CL MOV DL,10 MUL DL MOV BL,DA1 AND BL,0FH ADD AL,BL MOV DA2,AL

试回答: (1)程序段执行后,(DA2)=______;

(2)在程序段功能不变的情况下,是否可以用指令SAR替代指令SHR?

3.(8分)阅读下面的程序 DATA SEGMENT

ARRAY DW -1,6,9,0,-8,18,-7,11 AMAX DW -128 AMIN DW 127 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA MOV AX,DATA MOV DS,AX

MOV CX,(OFFSET AMAX - OFFSET ARRAY)/2 LEA SI,ARRAY AG: MOV AX,[SI] CMP AX,AMAX JLE BG

MOV AMAX,AX

BG: CMP AX,AMIN JGE CG MOV AMIN,AX CG: ADD SI,2 LOOP AG MOV AH,4CH INT 21H CODE ENDS

五、程序填空题(本大题共2小题,每小题6分,共12分)

1.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H

① ___________ MOV PLW,BX JMP DONE

K1:② _____________ DONE:

2.下面程序段完成用串指令在DA1开始的26个字节单元中依次存放A—Z的ASCII码,在DA2开始的26个字节单元中依次存放Z—A的ASCII码,请在横线处各填一条指令。

DA1 DB 26 DUP(?) DA2 DB 26 DUP(?)

┇ LEA DI,DA1 MOV AL,‘A’ MOV CX,26 CLD

LOP1:STOSB ①______________ LOOP LOP1 MOV CX,26 LOP2:②______________

STOSB LOOP LOP2

六、编制程序题(本大题共2小题,共20分)

1.X、Y、Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等的哪个数,并存入W单元中,试编写完成上述功能的程序。(10分) DATA SEGMENT X DB -

END

请回答:(1)该程序段的功能是什么?

(2)该程序执行完后,变量AMAX和AMIN中的内容分别是什么?

Y DB -

Z DB -

W DB ?

DATA ENDS

2.设数据段定义如下,请编写完整的程序段,把以DAT1为首址的数据区中的100个字节数据依次传送到以DAT2为首址的数据区中。(10分) Data segment

DAT1 DB 100 DUP(0) DAT2 DB 100 DUP(?) Data ends

模拟试卷一 参考答案

一、单项选择题(本大题共20小题,每小题1分,共20分)

1.B 6.D 11.B 16.C

1.1MB 64KB 2.SCAS

3.CS DS ES SS

4.①3200H 0 ②0E00H 0 ③0250H 0 ④0B0H 1 5.①0A2B1H ②1000H ③0B2B1H ④0B3B1H ⑤1100H 三、简答题(8分)

解:INT 11H指令的中断码为11H,在中断向量表中得到中断服务程序入口地址为F000H:F84DH。 INT 11H指令执行后,(SP)=00FAH,(CS)=0F00H,(IP)=0F84DH,(PSW)=0040H 堆栈中内容如下图:

0300H:00FAH 0300H:00FBH 0300H:00FCH 0300H:00FDH 0300H:00FEH 0300H:00FFH

四、程序分析题(本大题共3小题,共20分) 1.(1)00001111 (2)00001000

(3)将输入的十六进制数码的ASCII码转化为对应的数值。 2.(1)检查AX寄存器中保存的16位二进制数据中“1”的个数 (2)0005H

3.(1)0,3,2,5,4,7,6,9,8 (2)05H

五、程序填空题(本大题共2小题,每小题6分,共12分) 1.① JS NEXT ② JZ NEXT 2.① CMP AL,0 ② NEG AL 六、编制程序题(本大题共2小题,共20分) 1. CODE SEGMENT

ASSUME CS:CODE,DS:DATA BEGIN: MOV AX,DATA MOV DS,AX MOV BX,0 MOV CX,10 L1:MOV AL,N1[BX] MOV AH,N2[BX] CMP AL,AH

A2H 00H 00H 09H 40H 02H 2.B 7.C 12.A 17.A

3.A 8.D 13.C 18.C

4.A 9.B 14.D 19.D

5.D 10.A 15.B 20.C

二、填空题(本大题共5小题,每空1分,共20分)

本文来源:https://www.bwwdw.com/article/muxa.html

Top