|
电子科技大学网络教育学院
汇编语言程序设计 模拟试卷1(120分钟) 考试日期 年 月 日
一 二 三 四 五 六 七 八 九 十 总分 评卷老师
一、 填空(每空1分,共20分)。
1、 8086CPU有_______根地址线,可直接寻址_______字节的存储空间。
2、 -1的8位二进制补码是________。
3、 IBM-PC系列微机可访问的外设端口的地址范围是从_______到________。
4、 在8086CPU中,当______时,访问存储器,当______时,访问I/O端口。
5、 在8086CPU中,对I/O端口的寻址有________和___________。
6、 在8086CPU指令系统中,要获得数组变量所占的总字节数,使用_______运算符,要获得数组变量的元素个数,使用_________运算符,要获得变量的类型数字,使用_________运算符。
7、 符号‘$’代表___________的现行值,定位伪指令ORG是把某一个值赋给___________,表示以给定值作起始偏移量。
8、 若一个数据块的起始地址为70A0H :DDF6H,则这个数据块起始地址的实际地址为_________。
9、 如果一条指令使用标号,那么该标号就是这条指令的_______地址,且它代表该指令的________的地址。
10、 在宏汇编语言中,宏指令的使用过程是_______、_______、_______。
二、 单项选择题(每空1分,共20分)
1、两个非组合型BCD码数据相加后,执行加法校正指令AAA是,首先检查是否需要校正。需要校正的条件有:AF=1、CF=L和( )。
A.AL中高四位数的值>9 B.AL中高四位数的值<9
C.AL中低四位数的值<9 D.AL中低四位数的值>9
2、8086的I/O空间段寄存器使用的是( )
A.DS B.没必要 C.ES D.SS
3、I/O端口间接寻址方式是将被寻址的端口地址存放在( )
A.DX B.AX C.BX D.CX
4、8086/8088CPU的输入指令是将输入设备的一个端口中的数据传送到( )
A.IP B.AL/AX C.BP D.BX/CX
5、I/O设备的数据端口是( )
A.32 B.64 C.8/16 D.16/32
6、为了保证用户程序执行完后能正常返回DOS,常使用的一种方法是在程序执行的最后一条指令为RET。但使用该方法要在程序执行前进行一系列的保护操作( )
A. MOV AX, DATA
MOV DS, AX
MOV ES, AX
B. PUSH DS
MOV AX, 0
PUSH AX
C. MOV AH, 4CH
INT 21H
D. MOV AX, DATA
MOV DS, AX
PUSH AX
7、不用立即数,也不用任何存储单元中的数据,能完成AX ← -1, BX ← 0, CX ← 1的程序段是( )
A. XOR AX, AX
MOV BX, AX
INC AX
MOV CX, AX
NEG AX
B. OR AX, AX
MOV BX, AX
INC AX
MOV CX, AX
NEG AX
C. AND AX, AX
MOV BX, AX
INC AX
MOV CX, AX
NEG AX
D. XOR AX, AX
MOV BX, AX
DEC AX
MOV CX, AX
NEG AX
8、DA DW ‘AB’, ‘CD’
DB1 DB ‘X’
……
则执行指令语句XCHF DB1, BYTE PTR DA 后,结果DB1中的内容是( )
A. ‘A’ B.42H C.41H D.’C’
9、下列伪指令中可以用来定义变量的是( )
A.TYPE B.DB C.WORD D.BYTE
10、在汇编过程中不产生指令代码,只用来指示汇编程序如何汇编的指令是( )
A.宏指令 B.伪指令 C.机器指令 D.汇编指令
11、下面伪指令定义后,其变量对应的物理地址是( )
ORG 0100H
BUF DB 10 DUP(?)
CON DW 2 DUP(?)
A. BUF DS:0100H
CON DS:010AH
B. BUF DS:010AH
CON DS:0101H
C. BUF DS:0110H
CON DS:011CH
D. BUF DS:0100H
CON DS:0101H
12、在ASSUME伪指令设定了段寄存器后,无需在程序段中用指令完成赋值的寄存器是( )
A.CS B.DS C.ES D.AX
13、指令代码的地址存放在寄存器( )中
A.DS, SI B.ES, DI C.CS, IP D.BX, BP
14、指令PUSH AX的正确操作是( )
A. SP←SP + 1
AH→(SP)
SP←SP + 1
AL→(SP)
B. SP←SP - 1
AL→(SP)
SP←SP - 1
AH→(SP)
C. SP←SP- 1
AH→(SP)
SP←SP - 1
AL→(SP)
D. 以上均不正确
15、在取MOV BX 0125H指令的源操作数时,使用的逻辑地址时( )
A. CS:IP B.DS:0125H C.ES:0125H D.无
16、在8086/8088中,可以分为两个独立的8位寄存器使用的寄存器是( )
A.AX,DI,BP,SI B.AX,BX,CX,DX,F
C.SI, DI,BP,SP,IP D.CS,ES,DS,SS
17、设SP的初值为200H,执行指令”PUSH AX”后,SP的值为( )
A.198H B.200H C 202H D.1FEH
18、伪指令“ENDP”告诉汇编程序( )
A.宏定义结束 B.过程定义结束 C.段定义结束 D.用户程序结束
19、ADD AL, BL
AAA
设执行前(AX)= 0535H, (BL)=39H, 则执行上述指令后, AX中的内容为( )
A.0604H B.0574H C.0104H D.056EH
20、设(SS)=1E56H,(SP)=38H,则执行指令“RET 6”后,SP的值以及SP所指向的存储单元的物理地址分别是( )
A.3FH, 1E5A0H B.42H, 1E5C6H
C.39H, 1E5E2H D.42H,1E5A2H
三、 判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、 MOV AX,0FFH
MOV CS,AX ( )
2、 MOV AX,100
ADD AX,[BX]
DAA ( )
3、 …
A1 DB 10H
A2 DB ?
…
CMP A1,A2 ( )
4、 DATA0 DB 100
…
MOV [DATA0],AX
PUSH AX
… ( )
5、 MOV AL,01H
OUT 2F8H,AL ( )
四、写出下面程序段的运行结果或功能(20分)
1、 DESG SEGMENT AT 1000H
ORG 6
VAR1 DB 2,8
ORG $+2
VAR2 DW 569AH
DB ‘1234’
DESG ENDS
画出上面程序的内存分配图:(4分)
2、 MOV DL,31H
MOV AH,2
INT 21H
指出该程序段的功能:(2分)
3、 CLC
MOV CX,0FFFFH
INC CX
执行该程序段后,CX=_________,ZF=_________。(2分)
4、 MOV AL,100
CMP AL,100
执行该程序段后,AL=_________,CF=__________。(2分)
5、 下列程序段完成什么功能?(4分)
DATA1 DB 300 DUP(?)
DATA2 DB 100 DUP(?)
……..
MOV CX, 100
MOV BX, 200
MOV SI, 0
MOV DI, 0
L1: MOV AL, DATA1[BX][SI]
MOV DATA1[DI]
INC SI
INC DI
LOOP L1
6、 下列程序段完成的功能是什么?(4分)
BUF1 DB X
BUF2 DB Y
RES DB ?
………
MOV DX, BUF1
ADD DX, BUF2
MOV CL, 3
SAL DX, CL
SUB DX, BUF1
SAR DX, 1
MOV RES, DX
RET
7、 TABLE DB 0,7,3,98,23,26,34,51
DAT DB 4
……….
LEA BX, TABLE
MOV AX, 0
MOV AL, DAT
ADD BX, AX
MOV AL, [BX]
则执行上述程序段后,(AL)=________, 与ADD BX, AX和MOV AL, [BX]二条语句等效的一条语句是__________。(2分)
四、 编程(30分)
1、 知有一个100个字节数据的数据块,存放在以3DAOH :1000H开始的存储区内,将该数据块搬至以3EA0H :2000H开始的区域中。编写程序段,实现给定功能。(8分)
2、 计算表达式Z=(X2 + 2Y + Y2 ) / 2,设X,Y均为单字节正整数,结果Z为字数据。写完整的程序,完成给定的功能。(设X=23H, Y=0F6H)(10分)
3、编一完整的汇编语言程序,把BCD码转换成二进制数,并将结果放在存储单元BNUM中。设BCD码存放在 DNUM中,且为5687H。(12分)
参考资料:
电子科技大学网络教育学院
汇编语言程序设计 模拟试卷1(120分钟) 考试日期 年 月 日
一 二 三 四 五 六 七 八 九 十 总分 评卷老师
五、 填空(每空1分,共20分)。
1、 8086CPU有__20_____根地址线,可直接寻址___1M_____字节的存储空间。
2、 -1的8位二进制补码是__0FFH______。
3、 IBM-PC系列微机可访问的外设端口的地址范围是从__0_____到___3FFH_____。
4、 在8086CPU中,当M/-IO=1时,访问存储器,当M/-IO=0时,访问I/O端口。
5、 在8086CPU中,对I/O端口的寻址有存储器编址方法和I/O端口编址方法。
6、 在8086CPU指令系统中,要获得数组变量所占的总字节数,使用SIZE运算符,要获得数组变量的元素个数,使用LENGTH运算符,要获得变量的类型数字,使用TYPE运算符。
7、 符号‘$’代表当前位置计数器的现行值,定位伪指令ORG是把某一个值赋给当前位置计数器,表示以给定值作起始偏移量。
8、 若一个数据块的起始地址为70A0H :DDF6H,则这个数据块起始地址的实际地址为__7E7F6H______。
9、 如果一条指令使用标号,那么该标号就是这条指令的首地址,且它代表该指令的第一字节的地址。
10、 在宏汇编语言中,宏指令的使用过程是定义、调用、展开。
六、 单项选择题(每空1分,共20分)
1、两个非组合型BCD码数据相加后,执行加法校正指令AAA是,首先检查是否需要校正。需要校正的条件有:AF=1、CF=L和( D )。
A.AL中高四位数的值>9 B.AL中高四位数的值<9
C.AL中低四位数的值<9 D.AL中低四位数的值>9
2、8086的I/O空间段寄存器使用的是( B )
A.DS B.没必要 C.ES D.SS
3、I/O端口间接寻址方式是将被寻址的端口地址存放在( A )
A.DX B.AX C.BX D.CX
4、8086/8088CPU的输入指令是将输入设备的一个端口中的数据传送到( B )
A.IP B.AL/AX C.BP D.BX/CX
5、I/O设备的数据端口是( C )
A.32 B.64 C.8/16 D.16/32
6、为了保证用户程序执行完后能正常返回DOS,常使用的一种方法是在程序执行的最后一条指令为RET。但使用该方法要在程序执行前进行一系列的保护操作( B )
A. MOV AX, DATA
MOV DS, AX
MOV ES, AX
B. PUSH DS
MOV AX, 0
PUSH AX
C. MOV AH, 4CH
INT 21H
D. MOV AX, DATA
MOV DS, AX
PUSH AX
7、不用立即数,也不用任何存储单元中的数据,能完成AX ← -1, BX ← 0, CX ← 1的程序段是( A )
A. XOR AX, AX
MOV BX, AX
INC AX
MOV CX, AX
NEG AX
B. OR AX, AX
MOV BX, AX
INC AX
MOV CX, AX
NEG AX
C. AND AX, AX
MOV BX, AX
INC AX
MOV CX, AX
NEG AX
D. XOR AX, AX
MOV BX, AX
DEC AX
MOV CX, AX
NEG AX
8、DA DW ‘AB’, ‘CD’
DB1 DB ‘X’
……
则执行指令语句XCHF DB1, BYTE PTR DA 后,结果DB1中的内容是( B )
A. ‘A’ B.42H C.41H D.’C’
9、下列伪指令中可以用来定义变量的是( A )
A.TYPE B.DB C.WORD D.BYTE
10、在汇编过程中不产生指令代码,只用来指示汇编程序如何汇编的指令是( B )
A.宏指令 B.伪指令 C.机器指令 D.汇编指令
11、下面伪指令定义后,其变量对应的物理地址是( A )
ORG 0100H
BUF DB 10 DUP(?)
CON DW 2 DUP(?)
A. BUF DS:0100H
CON DS:010AH
B. BUF DS:010AH
CON DS:0101H
C. BUF DS:0110H
CON DS:011CH
D. BUF DS:0100H
CON DS:0101H
12、在ASSUME伪指令设定了段寄存器后,无需在程序段中用指令完成赋值的寄存器是( A )
A.CS B.DS C.ES D.AX
13、指令代码的地址存放在寄存器( C )中
A.DS, SI B.ES, DI C.CS, IP D.BX, BP
14、指令PUSH AX的正确操作是( C )
B. SP←SP + 1
AH→(SP)
SP←SP + 1
AL→(SP)
B. SP←SP - 1
AL→(SP)
SP←SP - 1
AH→(SP)
C. SP←SP- 1
AH→(SP)
SP←SP - 1
AL→(SP)
E. 以上均不正确
15、在取MOV BX 0125H指令的源操作数时,使用的逻辑地址时( A )
B. CS:IP B.DS:0125H C.ES:0125H D.无
16、在8086/8088中,可以分为两个独立的8位寄存器使用的寄存器是( B)
A.AX,DI,BP,SI B.AX,BX,CX,DX,F
C.SI, DI,BP,SP,IP D.CS,ES,DS,SS
17、设SP的初值为200H,执行指令”PUSH AX”后,SP的值为( D )
A.198H B.200H C 202H D.1FEH
18、伪指令“ENDP”告诉汇编程序( B)
A.宏定义结束 B.过程定义结束 C.段定义结束 D.用户程序结束
19、ADD AL, BL
AAA
设执行前(AX)= 0535H, (BL)=39H, 则执行上述指令后, AX中的内容为(A )
A.0604H B.0574H C.0104H D.056EH
20、设(SS)=1E56H,(SP)=38H,则执行指令“RET 6”后,SP的值以及SP所指向的存储单元的物理地址分别是( D )
A.3FH, 1E5A0H B.42H, 1E5C6H
C.39H, 1E5E2H D.42H,1E5A2H
七、 判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、 MOV AX,0FFH
MOV CS,AX ( × )
改:
MOV AX,0FFH
MOV DS,AX
2、 MOV AX,100
ADD AX,[BX]
DAA ( × )
改:
MOV AL,100
ADD AL,[BX]
DAA
3、 …
A1 DB 10H
A2 DB ?
…
CMP A1,A2 ( × )
改:
…
A1 DB 10H
A2 DB ?
…
MOV AL, A1
CMP AL,A2
4、 DATA0 DB 100
…
MOV [DATA0],AX
PUSH AX
… ( × )
改:
DATA0 DW 100
…
MOV [DATA0],AX
PUSH AX
…
5、 MOV AL,01H
OUT 2F8H,AL ( × )
改:
MOV AL,01H
MOV DX, 2F8H
OUT DX,AL
四、写出下面程序段的运行结果或功能(20分)
7、 DESG SEGMENT AT 1000H
ORG 6
VAR1 DB 2,8
ORG $+2
VAR2 DW 569AH
DB ‘1234’
DESG ENDS
画出上面程序的内存分配图:(4分)
参考资料:
2
8
-
-
9AH
56H
‘1’
‘2’
‘3’
‘4’
1000:0006H
8、 MOV DL,31H
MOV AH,2
INT 21H
指出该程序段的功能:(2分)
参考资料:显示数字1
9、 CLC
MOV CX,0FFFFH
INC CX
执行该程序段后,CX=_________,ZF=_________。(2分)
参考资料:CX=0, ZF=1
10、 MOV AL,100
CMP AL,100
执行该程序段后,AL=_________,CF=__________。(2分)
参考资料:AL=100, CF=0
11、 下列程序段完成什么功能?(4分)
DATA1 DB 300 DUP(?)
DATA2 DB 100 DUP(?)
……..
MOV CX, 100
MOV BX, 200
MOV SI, 0
MOV DI, 0
L1: MOV AL, DATA1[BX][SI]
MOV DATA1[DI]
INC SI
INC DI
LOOP L1
参考资料:将DATA1的后100个字节传输到DATA2开始的存储单元中。
12、 下列程序段完成的功能是什么?(4分)
BUF1 DB X
BUF2 DB Y
RES DB ?
………
MOV DX, BUF1
ADD DX, BUF2
MOV CL, 3
SAL DX, CL
SUB DX, BUF1
SAR DX, 1
MOV RES, DX
RET
参考资料:计算表达式[(X + y)*8 - X]/2的值。
7、 TABLE DB 0,7,3,98,23,26,34,51
DAT DB 4
……….
LEA BX, TABLE
MOV AX, 0
MOV AL, DAT
ADD BX, AX
MOV AL, [BX]
则执行上述程序段后,(AL)=________, 与ADD BX, AX和MOV AL, [BX]二条语句等效的一条语句是__________。(2分)
参考资料:16, XLAT
八、 编程(30分)
1、 知有一个100个字节数据的数据块,存放在以3DAOH :1000H开始的存储区内,将该数据块搬至以3EA0H :2000H开始的区域中。编写程序段,实现给定功能。(8分)
参考资料:
MOV AX, 3DA0H
MOV DS, AX
MOV AX,3EA0H
MOV ES, AX
MOV SI, 1000H
MOV DI, 2000H
MOV CX, 100
LOOP1: MOV AL, DS:[SI]
MOV ES:[DI],AL
INC SI
INC DI
LOOP LOOP1
2、 计算表达式Z=(X2 + 2Y + Y2 ) / 2,设X,Y均为单字节正整数,结果Z为字数据。写完整的程序,完成给定的功能。(设X=23H, Y=0F6H)(10分)
参考资料:
TITLE CALCULATE Z=(X2 + 2Y + Y2 ) / 2
DATA SEGMENT
X DB 23H
Y DB 0F6H
Z DW ?
DATA ENDS
STACK SEGMENT PARA STACK ‘stack’
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DSATA, SS:STACK
START PROC FAR
BEGIN: PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV AL, X
MOV AH,0
MOV BL, Y
MOV BH, 0
MUL AL
MOV CX, AX
MOV AX, BX
MUL AL
ADD BX,BX
ADD AX,BX
ADD AX,CX
DIV AX, 2
MOV Z, AX
RET
START ENDP
CODE ENDS
END BEGIN
3、编一完整的汇编语言程序,把BCD码转换成二进制数,并将结果放在存储单元BNUM中。设BCD码存放在 DNUM中,且为5687H。(12分)
参考资料:
DATA SEGMENT
DNUM DW 5687H
BNUM DW ?
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DSATA, SS:STACK
START: MOV AX, DATA
MOV DS, AX
MOV AX, DNUM
MOV DI, AX
MOV DX, AX
MOV BX, AX
AND BX, 000FH
AND DX, 00F0H
MOV CL, 4
SHR, DX, CL
AND DI, 0F00H
MOV CL, 8
SHR DI,CL
AND AX,0F000H
MOV CL,12
SHR AX,CL
SAL AX,1
MOV SI,AX
MOV CL,2
SAL AX,CL
ADD AX,SI
ADD AX,DI
SAL AX,1
MOV SI,AX
MOV CL,2
SAL AX,CL
ADD AX,SI
ADD AX,DX
SAL AX,1
MOV SI,AX
MOV CL,2
SAL AX,CL
ADD AX,SI
ADD AX,BX
MOV BNUM, AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
电子科技大学网络教育学院
汇编语言程序设计 模拟试卷2(120分钟) 考试日期 年 月 日
一 二 三 四 五 六 七 八 九 十 总分 评卷老师
九、 填空(每空1分,共20分)。
1、 在PC系列微机钟,从00000H至003FFH哦内存中存放着_ _______。
2、 设堆栈指针(SP)= 2200H,此时若将AF、AX、BX、CX依次压入堆栈后,(SP)=________。
3、 8086/8088CPU寻址外设端口的两种寻址方式为_______和________。
4、 凡地址能被________整除的单元可定义为段的起始单元。
5、 程序段 MOV AL,64H
MOV BL,-1
CMP AL,BL
ADD AL,AL
执行后,(AL)=______,(BL)=______,CF=______。
6、 程序段
MOV AL, 40H
ADD AL, AL
ADC AL, AL
ADC AL, AL
执行后,(AL)=_____, CF=_______。
7、 在8086/8088CPU串操作寻址中,隐含使用变址寄存器SI、DI。若_____时,SI、DI自动增量,否则自动减量。
8、 在8086/8088CPU基址变址寻址操作中,当基址寄存器选用BP时,隐含使用的段寄存器是________,当选用BX时,隐含使用的段寄存器是______。
9、 OFFSET用于获得一个变量或标号在其段内的__________。
10、 在8086/8088指令系统中,_________是一个字节表示两个BCD码,_______是一个字节的低4位表示一个BCD码,高4位通常为0000或0011等。
11、 在用指令MUL进行字节乘法时,一个操作数隐含使用寄存器_______,运算所得结果隐含地存放在寄存器_______。
12、 执行CALL指令,对标志寄存器_______。
13、 在编写子程序时,必须注意一个子程序执行的最后一条指令一定是还回指令______,用以还回到调用该子程序的断点处。
十、 单项选择题(每空1分,共20分)
1、 二进制数1000 0000为带符号的补码时,表示( ).
A.-128 B.-0 C.-127 D.128
2、 在计算机内,字符均用ASCII码表示,一个字符在存储器中占用( )
A.4BIT B.1个字节 C.一个字 D.一个双字
3、 在计算机内,机器数均用( )来表示
A.原码 B.反码 C.补码 D.ASCII码
4、 BCD码是二进制编码的十进制数,一个16位的十进制数或非组合BCD码在机内要占用( )个字节单元
A.4 B.8 C.16 D.32
5、 8086CPU产生存储单元的物理地址是由( )组合产生的
A.CS和IP B.段基址和偏移地址 C.SS和SP D.有效地址和相对地址
6、 标志位( )用于控制串操作的方向(增量或减量)
A.AF B.PF C.IF D.DF
7、 8086CPU访问(读/写)一次存储器或I/O接口所用的时间,称为一个( )
A.基本指令执行时间 B.时钟周期 C.总线周期 D.指令周期
8、 8086的基本总线周期长度是( )(不含等待)
A.3T B.TI C.一个指令周期 D.4T
9、 8086CPU寻址I/O端口是,若要访问1024个字节端口或512个字节端口时,至少要使用( )根地址线
A.4 B.8 C.10 D.16
10、指令PUSH DS的目的操作数是( )寻址方式
A.寄存器 B.寄存器间接 C.直接 D.隐含(固定)
11、已知(SI)=0004H, (DS)=8000H, (80004H)=02H, (80005H)=C3H,指令LEA AX, [SI]执行后,(AX)= ( )
A.0002H B.0004H C.02H D.C302H
12、已知(AL0=A3H, 指令CBW执行后,(AX)=( )
A.00A3H B.FFA3H C.0FA3H D.A300H
13、( )是一种能被计算机识别和执行的语言
A.汇编语言 B.高级语言 C.算法语言 D.机器语言
14、八位微计算机用补码所能表示的数的范围是( )
A.-128~127 B.-127~127 C.0~255 D.0~256
15、八位微处理器的地址线AB为16条,则能组合成( )种不同的地址码
A.21 6 B. 21 6 - 1 C.21 5 D. 21 5 -1
16、两个八位二进制数0000 0110和1111 1100相加,则( )成立
A. 视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,发生溢出
B. 视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,发生溢出
C. 视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,不发生溢出
D. 视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,不发生溢出
17、8086CPU内部由两个独立的工作部件构成,它们是( )
A.执行部件和总线接口部件 B.执行部件和地址、数据缓冲器
B.运算器和控制器 C。运算器和寄存器阵列
18、已知(AL)=36H, (BL)=02H, 执行指令MUL BL后,AH和AL的值分别为( )
A.(AH)=03H, (AL)=2AH B.(AH)=00H, (AL)=6CH
C.(AH)=FFH, (AL)=6CH D.(AH)=03H, (AL)=6CH
19、一个存储单元的实际地址为25342H,若其段首址为234E0H,则其段内偏移地址为( )
A.1F41H B.1F42H C.5432H D.01FAH
20、与DB ‘A’, ‘B’等效的指令是( )
A.DB ‘BA’ B.DW ‘BA’ C.DW ‘AB’ D.DW ‘A’, ‘B’
十一、 判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、 MOV A L,512 ( )
2、 SAL BX, 2 ( )
3、 OR AX, 504H AND 208H ( )
4、 MOV DS, 0200H ( )
5、 ADD AX, BX [SI] ( )
四、写出下面程序段的运行结果或功能(每空2分,共10分)
13、 已知(SP)=100H,执行指令
POP AX
PUSH CX
PUSH DX后,则(SP)=
14、 已知(BX)= 128,执行指令
DEC BX
MOV AX, BX
NEG AX
INC AX
ADD BX, AX 后
则(BX)= (AX)=
15、 执行指令
MOV AL, 85H
SUB AL, 36H
DAS
MOV BH, AL
ADD AL, 36H后
则(AL)= (BH)= _________
五、 指令理解题(每小题2分,共10分)
已知(AX)=C376H, (BX) = 0002H, (SI) = 4400H, (DI)=2300H, DS = ES =SS =6600H, (SP) = 4400H,(64400H)=A2H, (64401H)= 71H,(64402H) = 00H, (64403H) =F3H, CF = 1, DF=1。写出下列指令单独执行后有关寄存器和存储单元的值,并指出是否影响标志SF、ZF、CF、OF,若影响须写出标志值。
1、ADC AL, [4400H]
2、OR AL, [BX + SI – 1]
3、 MOVSW
4、 NEG BYTE PTR[SI]
5、 CALL BX(段内间接调用)
六、编程(30分)
1、 试编写一汇编程序段,完成下面数学表达式的功能。(8分)
W = X + Y – Z (W, X, Y, Z均为双字变量)
2、 设在数据段,附加段,和堆栈段中,分别定义了字变量X、Y、Z,试编制一完整的汇编语言程序,计算:W = X +Y +Z (设X= 0250H, Y = 0660H, Z = 0320H).(10分)
3、 设有字节型数据76H, -23H, 15,-17, -36,45,……,试编写一完整的汇编语言程序,将其中的负数变为对应的正数,并放回原存储单元中。(12分)
参考资料:
电子科技大学网络教育学院
汇编语言程序设计 模拟试卷2(120分钟) 考试日期 年 月 日
一 二 三 四 五 六 七 八 九 十 总分 评卷老师
十二、 填空(每空1分,共20分)。
1、 在PC系列微机钟,从00000H至003FFH哦内存中存放着_中断向量表_______。
2、 设堆栈指针(SP)= 2200H,此时若将AF、AX、BX、CX依次压入堆栈后,(SP)=21F8H。
3、 8086/8088CPU寻址外设端口的两种寻址方式为直接寻址和间接端口寻址。
4、 凡地址能被16整除的单元可定义为段的起始单元。
5、 程序段 MOV AL,64H
MOV BL,-1
CMP AL,BL
ADD AL,AL
执行后,(AL)=C8H,(BL)=0FFH,CF=0。
6、 程序段
MOV AL, 40H
ADD AL, AL
ADC AL, AL
ADC AL, AL
执行后,(AL)=01H, CF=0。
7、 在8086/8088CPU串操作寻址中,隐含使用变址寄存器SI、DI。若DF=0时,SI、DI自动增量,否则自动减量。
8、 在8086/8088CPU基址变址寻址操作中,当基址寄存器选用BP时,隐含使用的段寄存器是SS,当选用BX时,隐含使用的段寄存器是DS。
9、 OFFSET用于获得一个变量或标号在其段内的偏移量。
10、 在8086/8088指令系统中,组合型BCD码是一个字节表示两个BCD码,非组合型BCD码是一个字节的低4位表示一个BCD码,高4位通常为0000或0011等。
11、 在用指令MUL进行字节乘法时,一个操作数隐含使用寄存器AL,运算所得结果隐含地存放在寄存器AX。
12、 执行CALL指令,对标志寄存器无影响。
13、 在编写子程序时,必须注意一个子程序执行的最后一条指令一定是还回指令RET,用以还回到调用该子程序的断点处。
十三、 单项选择题(每空1分,共20分)
1、 二进制数1000 0000为带符号的补码时,表示A.
A.-128 B.-0 C.-127 D.128
2、 在计算机内,字符均用ASCII码表示,一个字符在存储器中占用B
A.4BIT B.1个字节 C.一个字 D.一个双字
3、 在计算机内,机器数均用C来表示
A.原码 B.反码 C.补码 D.ASCII码
4、 BCD码是二进制编码的十进制数,一个16位的十进制数哦非组合BCD码在机内要占用B个字节单元
A.4 B.8 C.16 D.32
5、 8086CPU产生存储单元的物理地址是由B组合产生的
A.CS和IP B.段基址和偏移地址 C.SS和SP D.有效地址和相对地址
6、 标志位D用于控制串操作的方向(增量或减量)
A.AF B.PF C.IF D.DF
7、 8086CPU访问(读/写)一次存储器或I/O接口所用的时间,称为一个C
A.基本指令执行时间 B.时钟周期 C.总线周期 D.指令周期
8、 8086的基本总线周期长度是D(不含等待)
A.3T B.TI C.一个指令周期 D.4T
9、 8086CPU寻址I/O端口是,若要访问1024个字节端口或512个字节端口时,至少要使用C根地址线
A.4 B.8 C.10 D.16
10、指令PUSH DS的目的操作数是D寻址方式
A.寄存器 B.寄存器间接 C.直接 D.隐含(固定)
11、已知(SI)=0004H, (DS)=8000H, (80004H)=02H, (80005H)=C3H,指令LEA AX, [SI]执行后,(AX)=B
A.0002H B.0004H C.02H D.C302H
12、已知(AL0=A3H, 指令CBW执行后,(AX)=B
A.00A3H B.FFA3H C.0FA3H D.A300H
13、D是一种能被计算机识别和执行的语言
A.汇编语言 B.高级语言 C.算法语言 D.机器语言
14、八位微计算机用补码所能表示的数的范围是A
A.-128~127 B.-127~127 C.0~255 D.0~256
15、八位微处理器的地址线AB为16条,则能组合成A种不同的地址码
A.21 6 B. 21 6 - 1 C.21 5 D. 21 5 -1
16、两个八位二进制数0000 0110和1111 1100相加,则C成立
E. 视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,发生溢出
F. 视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,发生溢出
G. 视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,不发生溢出
H. 视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,不发生溢出
17、8086CPU内部由两个独立的工作部件构成,它们是A
A.执行部件和总线接口部件 B.执行部件和地址、数据缓冲器
B.运算器和控制器 C。运算器和寄存器阵列
18、已知(AL)=36H, (BL)=02H, 执行指令MUL BL后,AH和AL的值分别为B
A.(AH)=03H, (AL)=2AH B.(AH)=00H, (AL)=6CH
C.(AH)=FFH, (AL)=6CH D.(AH)=03H, (AL)=6CH
19、一个存储单元的实际地址为25342H,若其段首址为234E0H,则其段内偏移地址为B
A.1F41H B.1F42H C.5432H D.01FAH
20、与DB ‘A’, ‘B’等效的指令是(A)
A.DB ‘BA’ B.DW ‘BA’ C.DW ‘AB’ D.DW ‘A’, ‘B’
十四、 判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、 MOV A L,512 ( X )
改:MOV AX,258
2、 SAL BX, 2 ( X )
改:SAL CL, 2
3、 OR AX, 504H AND 208H ( √ )
4、 MOV DS, 0200H ( X )
改:MOV AX, 0200H
MOV DS, AX
5、 ADD AX, BX [SI] ( X )
改:ADD AX, [BX] [SI]
四、写出下面程序段的运行结果或功能(每空2分,共10分)
16、 已知(SP)=100H,执行指令
POP AX
PUSH CX
PUSH DX后,则(SP)= 0FEH
17、 已知(BX)= 128,执行指令
DEC BX
MOV AX, BX
NEG AX
INC AX
ADD BX, AX 后
则(BX)= 0001H (AX)= FF82H
18、 执行指令
MOV AL, 85H
SUB AL, 36H
DAS
MOV BH, AL
ADD AL, 36H后
则(AL)= 7FH (BH)= 49H
六、 指令理解题(每小题2分,共10分)
已知(AX)=C376H, (BX) = 0002H, (SI) = 4400H, (DI)=2300H, DS = ES =SS =6600H, (SP) = 4400H,(64400H)=A2H, (64401H)= 71H,(64402H) = 00H, (64403H) =F3H, CF = 1, DF=1。写出下列指令单独执行后有关寄存器和存储单元的值,并指出是否影响标志SF、ZF、CF、OF,若影响须写出标志值。
1、ADC AL, [4400H]
资料:
AL = 18H, DS=6000H, SF = 0, ZF = 0, CF = 1
2、OR AL, [BX + SI – 1]
资料:
AL = 77H, DS=6000H, (64401H) = 71H, BX = 0002H, SI = 4400H,
SF = 0, ZF = 0, CF = 0, OF = 0
6、 MOVSW
资料:DS = 6000H, SI =43FEH, DL=22F3H, [64400H] = 0A21H, [64401H] = 71H,
[62300H] = 0A2H, [62301H] = 71H,
对标志位无影响
7、 NEG BYTE PTR[SI]
资料:[64400H] = 5EH, SI=0, SI=4400H,
CF = 1, ZF = 0, OF = 0,
8、 CALL BX(段内间接调用)
资料:BX = 0002H
SS = 6000H
SP = 43FEH
IP = 0002H
对标志位无影响
六、编程(30分)
4、 试编写一汇编程序段,完成下面数学表达式的功能。(8分)
W = X + Y – Z (W, X, Y, Z均为双字变量)
资料:
MOV AX, X
ADD AX, Y
MOV BX, X + 2
ADC BX, Y + 2
SUB AX, Z
SBB BX, Z + 2
MOV W, AX
MOV W + 2, BX
5、 设在数据段,附加段,和堆栈段中,分别定义了字变量X、Y、Z,试编制一完整的汇编语言程序,计算:W = X +Y +Z (设X= 0250H, Y = 0660H, Z = 0320H).(10分)
资料:
TITLE CALCULATE W = X +Y +Z
DATA SEGMENT
X DW 0250H
W DW ?
DATA ENDS
STACK SEGMENT PARA STACK ‘stack’
Z DW 0320H
DB 100 DUP(?)
STACK ENDS
EXTRA SEGMENT
Y DW 0660H
EXTRA ENDS
CODE SEGMENT
ASSUME CS:CODE, DSATA, ES:EXTRA, SS:STACK
BEGIN: MOV AX, DATA
MOV DS, AX
MOV AX, ERTRA
MOV ES, AX
MOV AX, X
ADD AX, ES:Y
ADD AX, SS:Z
MOV W, AX
MOV AH, 4CH
INT 21H
CODE ENDS
END BEGIN
6、 设有字节型数据76H, -23H, 15,-17, -36,45,……,试编写一完整的汇编语言程序,将其中的负数变为对应的正数,并放回原存储单元中。(12分)
资料:
TITLE CHANGE CERTAIN NUMBER
DATA SEGMENT
NUM DB 76H, -23H, 15,-17, -36,45,……
LEN EQU $ -NUM
DATA ENDS
STACK SEGMENT PARA STACK ‘stack’
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DSATA, SS:STACK
BEGIN: MOV AX, DATA
MOV DS, AX
MOV CX, LEN
LEA SI, NUM
L1: MOV AL, [SI]
OR AL, AL
JNS L2
NEG AL
MOV [SI], AL
L2: INC SI
DEC CX
JNZ L1
MOV AH, 4CH
INT 21H
CODE ENDS
END BEGIN
电子科技大学网络教育学院
汇编语言程序设计 模拟试卷3(120分钟) 考试日期 年 月 日
一 二 三 四 五 六 七 八 九 十 总分 评卷老师
十五、 填空(20分),每空1分。
1、 当由逻辑地址转换为物理地址时,是将段寄存器的内容左移( )位,再加上偏移量形成( )位的物理地址。
2、 实现对一个字节/字的数求反用指令( )。
3、 设JMP指令的段内直接寻址的目标代码为二字节长,该指令首字节偏移量为200H,那么正的相对转移能到达的最远的偏移量是( ),负的相对转移能到达的最远的偏移量是( )。
4、 表示宏定义结束和重复汇编结束是用伪指令( )实现。
5、 在debug状态下装入可执行文件后,程序的目标代码和数据已全部送入内存指定单元,此时DS、ES将指向( )。
6、 写出下列指令中存储器操作数的物理地址计算表达式:
(1)MOV AL, [SI]
则_________
(2) SUB 40H[BX],AX
则_________
(3) INC SS: 5[BX][SI]
则___________
7、 在8086/8088CPU中,可用与作地址指针的寄存器有( ), ( ), ( ), ( )和 DI。
8、 8086/8088在程序中表达一个存储单元地址是用逻辑地址,逻辑地址是由( )和 ( )两部分组成。
9、 若CS =5200H,某条指令第一字节物理地址为5A230H,当CS=7800H时,该条指令第一字节物理地址是( )。
10、输入输出的控制方式有( )、( )、( )。
十六、 单项选择题(20分)
1、 执行下列指令时,需要使用段寄存器DS的是( )
A.PUSHF B.MOV [BX], AX C.SAHF D.MOV [BP], CX
2、 设SP=F000H, BH = 20H, BL = 08H, 执行PUSH BX指令后( )
i. SP = 0F002H, (0F001H) = 20H, (0F002H) = 08H
ii. SP = 0EFFEH, (0EFFFH) = 08H, (0EFFEH) = 20H
iii. SP = 0EFFFH, (0F000H) = 20H, (0F002H) = 08H
iv. SP = 0EFFEH, (0EFFFH) = 20H, (0EFFEH) = 08H
3、 下列语句有语法错误的语句是( )
i. MOV AX, [BX][BP]
ii. ADD AX, [BX]
iii. CMP [BX], 0FH
iv. LEA SI,20H[BX]
4、 在取MOV BX, 0123H 指令的源操作数时,使用的逻辑地址是( )
A.无 B.DS:0123H C.CS:IP D.ES:0123H
5、 两个非组合型BCD码数据相减后,执行减法校正指令AAS时,首先检查是否需要校正。需要校正的条件有( )
i. AL中的数>9, 且AF = 1
ii. AL中低四位的数>9, 且AF = 1
iii. AL中的数>9, 或AF = 1
iv. AL中低四位的数>9, 或AF = 1
6、 用REPNE CMPSB指令作两个字符串比较时,如果CX≠0,比较结束,原因是( )
i. 两字符串相等
ii. 两字符串不等
iii. 两字符串长度不等
iv. 两字符串大小不同
7、 CPU响应可屏蔽中断请求是通过( )引脚发出两个负脉冲通知外设。
A.NMI B.RESET C.ALE D.INTR
8、 下列寄存器中在段内寻址时可以提供偏移地址的是( )
i. AX, BX, CX, DX
ii. BP, BX, SI, DI
iii. SP, IP
iv. CS,SS,DS,ES
9、 下列地址可以做为一个段的起始地址的是( )
i. 01234H
ii. 0FFF68H
iii. 8E476H
iv. 46560H
10、下列指令中操作数在代码段中的是( )
A.INC [BX] B.ADD AH, BL C.MOV AL, 25H D.CMP AX, 20H[SI]
11、有数据定义伪指令DB 10H DUP(4, 2DUP(2))所定义的数据单元中有数据‘0402H’的字存储单元的个数是( )
A.10H B.08H C.0EH D.0FH
12、在中断向量表中,以地址34H为首地址的连续四个字节单元中放有一中断处理程序入口地址,它所对应的中断源的中断类型号为( )
A.4 B.13 C.21 D.45
13、8088的F寄存器包含几个标志位( )
A.9 B.7 C.5 D.8
14、从键盘输入的数据,通常是以什么数制或代码表示的( )
A.二进制 B.十六进制 C.ASCII 码 D.八进制
15、8088中那些寄存器不可以进行数据传送( )
A.SI, DI B. FLAG, IP C.IP, CS D.BP,SP
16、在堆栈操作中,隐含使用的通用寄存器是( )
I. SI B.BP C. IP D.SP
17、执行指令序列
MOV AL, 82H
CBW
后,则结果是( )
A.AX = 0FF82H B.AL = 82H,AH中内容不变
C.AX = 0082H C.AX = 0F8CH
18、串传送指令MOVS的源操作数和目的操作数可来自( )
A. 源操作数来自DS:[SI],目的操作数来自ES:[DI]
B. 源操作数来自DS:[SI],目的操作数来自DS:[DI]
C. 源操作数来自ES:[SI],目的操作数来自ES:[DI]
D. 源操作数来自DS:[SI],目的操作数来自SS:[DI]
19、IF标志位的复位或置位,只影响CPU对( )
A.NMI B.单步中断 C.内部中断 D.INTR
20、条件转移类指令的跳转距离范围是( )字节
A.1~256 B.-128~127 C.-127~127 D.-127~128
十七、 判断题(判断正误,正确的划上“√”,错误的划上“×”。每题1分,共10分)
1、 8088是16位微处理器 ( )
2、 物理地址是唯一代表存储空间中每个字节单元的地址 ( )
3、 堆栈是以先进后出的方式工作的存储空间 ( )
4、 8088/8086只能用SP寻址堆栈段 ( )
5、 汇编程序是把汇编语言编写的源程序翻译成可执行的目标程序 ( )
6、 伪指令是由汇编程序在汇编过程执行的指令 ( )
7、 -0的反码是0 ( )
8、 有效地址是指内存中的实际地址 ( )
9、 符号定义伪指令’EQU’和‘=’用法一样,没有区别 ( )
10、 数据既可以从数据段中获取,也可以从其他任何段中获取 ( )
四、读程序(共20分)
19、 说明下列程序段完成的功能
BEGIN: IN AL, 5FH
TEST AL, 01H
JZ L1
MOV AH, 0
JMP L2
L1: MOV AH, OFFH
L2: HLT
程序功能:___________________________(3分)
20、 …….
NUM DW Y1, Y2, Y3, Y4
……
MOV BX, OFFSET NUM
MOV CH, 4
XOR AX, AX
TABLE: MOV CL, CH
MOV DX, [BX]
SHR DX, CL
ADD AX, DX
ADD BX, 2
DEC CH
JNZ TABLE
……..
执行上述程序段后,(AX)=___________________ (3分)
21、 完成下列程序段,每空只填一条指令,使该程序段完成从端口300H输入2k字节数据到BUFFER开始的内存缓冲区中的功能。(每空1分,共2分)
MOV BX, OFFSET BUFFER
MOV CX, 0800H
MOV DX, 300H
L1: IN AL, DX
MOV [BX], AL
______________
______________
JNZ L1
HLT
22、 已知(DS) = 1250H, (BX)= 55H, (SI)= 46H, (125ABH) = 39BH, (125ADH) = 1210H,则
LDS DI, 10H[BX][SI]
MOV AL, 110H[DI]
上述两条语句执行后,(AL)=____________, (DI) = ____________(每空2分,共4分)
23、 设伪指令定义如下,画出内存示意图。(5分)
BUF DB ?
DW ‘AB’
DW ‘C’
DW 1234H
DB ‘ABCD’
24、 …….
BUF DB 01H
…….
XOR AL, AL
MOV BL, AL
SAL AL, 1
ADD AL, BL
XOR AL, 0FFH
HLT
则上述程序段执行后,(AL)=__________, (BL)=__________, (CF) =_______(每空1分,共3分)
六、编程(30分)
1、 编写一完整的汇编语言源程序,实现Z=(X + Y)/2。设X、Y、Z都在数据段,且设X=5AH,Y=35H。(12分)
2、 编制一完整的汇编语言源程序,将键盘输入的英文大写字母转换为小写字母并显示。(12分)
3、 下面程序段是把CHAR1中各小写字母分别转换为大写字母,并存放在CHAR2中。试把空白处填上适当的指令。(6分)
CHAR1 DB ‘translation’
CHAR2 DB $-CHAR1 DUP(?)
VAR DB ‘A’, ‘a’
……..
MOV AL, VAR
_____(1)___________
LEA SI, CHAR1
LEA DI, CHAR2
MOV CX, LENGTH CHAR2
LOP: MOV AH, [SI]
______(2)___________
MOV [DI], AH
INC SI
INC DI
LOOP LOP
参考资料:
电子科技大学网络教育学院
汇编语言程序设计 模拟试卷3(120分钟) 考试日期 年 月 日
一 二 三 四 五 六 七 八 九 十 总分 评卷老师
十八、 填空(20分),每空1分。
1、 当由逻辑地址转换为物理地址时,是将段寄存器的内容左移( 4 )位,再加上偏移量形成( 20 )位的物理地址。
2、 实现对一个字节/字的数求反用指令( NOT )。
3、 设JMP指令的段内直接寻址的目标代码为二字节长,该指令首字节偏移量为200H,那么正的相对转移能到达的最远的偏移量是( 281H ),负的相对转移能到达的最远的偏移量是( 182H )。
4、 表示宏定义结束和重复汇编结束是用伪指令( ENDM)实现。
5、 在debug状态下装入可执行文件后,程序的目标代码和数据已全部送入内存指定单元,此时DS、ES将指向( 程序段前缀的段基值 )。
6、 写出下列指令中存储器操作数的物理地址计算表达式:
(1)MOV AL, [SI]
则PA=DS * 16 + (SI)
(2) SUB 40H[BX],AX
则PA=DS * 16 +(40H +BX)
(3) INC SS: 5[BX][SI]
则PA =SS *16 +(5 +BX +SI)
7、 在8086/8088CPU中,可用与作地址指针的寄存器有( BX ), (BP), ( SP ), (SI)和 DI。
8、 8086/8088在程序中表达一个存储单元地址是用逻辑地址,逻辑地址是由( 段基址 )和 (偏移地址 )两部分组成。
9、 若CS =5200H,某条指令第一字节物理地址为5A230H,当CS=7800H时,该条指令第一字节物理地址是( 80230H)。
10、输入输出的控制方式有(程序控制)、(中断)、(DMA)。
十九、 单项选择题(20分)
1、 执行下列指令时,需要使用段寄存器DS的是( B )
A.PUSHF B.MOV [BX], AX C.SAHF D.MOV [BP], CX
2、 设SP=F000H, BH = 20H, BL = 08H, 执行PUSH BX指令后( D )
i. SP = 0F002H, (0F001H) = 20H, (0F002H) = 08H
ii. SP = 0EFFEH, (0EFFFH) = 08H, (0EFFEH) = 20H
iii. SP = 0EFFFH, (0F000H) = 20H, (0F002H) = 08H
iv. SP = 0EFFEH, (0EFFFH) = 20H, (0EFFEH) = 08H
3、 下列语句有语法错误的语句是( A )
i. MOV AX, [BX][BP]
ii. ADD AX, [BX]
iii. CMP [BX], 0FH
iv. LEA SI,20H[BX]
4、 在取MOV BX, 0123H 指令的源操作数时,使用的逻辑地址是( C )
A.无 B.DS:0123H C.CS:IP D.ES:0123H
5、 两个非组合型BCD码数据相减后,执行减法校正指令AAS时,首先检查是否需要校正。需要校正的条件有( D )
i. AL中的数>9, 且AF = 1
ii. AL中低四位的数>9, 且AF = 1
iii. AL中的数>9, 或AF = 1
iv. AL中低四位的数>9, 或AF = 1
6、 用REPNE CMPSB指令作两个字符串比较时,如果CX≠0,比较结束,原因是( A )
i. 两字符串相等
ii. 两字符串不等
iii. 两字符串长度不等
iv. 两字符串大小不同
7、 CPU响应可屏蔽中断请求是通过( D )引脚发出两个负脉冲通知外设。
A.NMI B.RESET C.ALE D.INTR
8、 下列寄存器中在段内寻址时可以提供偏移地址的是( B )
i. AX, BX, CX, DX
ii. BP, BX, SI, DI
iii. SP, IP
iv. CS,SS,DS,ES
9、 下列地址可以做为一个段的起始地址的是( D )
i. 01234H
ii. 0FFF68H
iii. 8E476H
iv. 46560H
10、下列指令中操作数在代码段中的是( C )
A.INC [BX] B.ADD AH, BL C.MOV AL, 25H D.CMP AX, 20H[SI]
11、有数据定义伪指令DB 10H DUP(4, 2DUP(2))所定义的数据单元中有数据‘0402H’的字存储单元的个数是( D )
A.10H B.08H C.0EH D.0FH
12、在中断向量表中,以地址34H为首地址的连续四个字节单元中放有一中断处理程序入口地址,它所对应的中断源的中断类型号为( B )
A.4 B.13 C.21 D.45
13、8088的F寄存器包含几个标志位( A )
A.9 B.7 C.5 D.8
14、从键盘输入的数据,通常是以什么数制或代码表示的( C )
A.二进制 B.十六进制 C.ASCII 码 D.八进制
15、8088中那些寄存器不可以进行数据传送( C )
A.SI, DI B. FLAG, IP C.IP, CS D.BP,SP
16、在堆栈操作中,隐含使用的通用寄存器是( D )
J. SI B.BP C. IP D.SP
17、执行指令序列
MOV AL, 82H
CBW
后,则结果是( A )
A.AX = 0FF82H B.AL = 82H,AH中内容不变
C.AX = 0082H C.AX = 0F8CH
18、串传送指令MOVS的源操作数和目的操作数可来自( A )
D. 源操作数来自DS:[SI],目的操作数来自ES:[DI]
E. 源操作数来自DS:[SI],目的操作数来自DS:[DI]
F. 源操作数来自ES:[SI],目的操作数来自ES:[DI]
D. 源操作数来自DS:[SI],目的操作数来自SS:[DI]
19、IF标志位的复位或置位,只影响CPU对( D )
A.NMI B.单步中断 C.内部中断 D.INTR
20、条件转移类指令的跳转距离范围是( B )字节
A.1~256 B.-128~127 C.-127~127 D.-127~128
二十、 判断题(判断正误,正确的划上“√”,错误的划上“×”。每题1分,共10分)
1、 8088是16位微处理器 ( X )
2、 物理地址是唯一代表存储空间中每个字节单元的地址 ( √ )
3、 堆栈是以先进后出的方式工作的存储空间 ( √ )
4、 8088/8086只能用SP寻址堆栈段 ( X )
5、 汇编程序是把汇编语言编写的源程序翻译成可执行的目标程序 ( X )
6、 伪指令是由汇编程序在汇编过程执行的指令 ( √ )
7、 -0的反码是0 ( X )
8、 有效地址是指内存中的实际地址 ( X )
9、 符号定义伪指令’EQU’和‘=’用法一样,没有区别 ( X )
10、 数据既可以从数据段中获取,也可以从其他任何段中获取 ( √ )
四、读程序(共20分)
25、 说明下列程序段完成的功能
BEGIN: IN AL, 5FH
TEST AL, 01H
JZ L1
MOV AH, 0
JMP L2
L1: MOV AH, OFFH
L2: HLT
程序功能:___________________________(3分)
资料:输入5FH端口的内容到AL寄存器,判断其奇偶性。如果为奇数,AH寄存器置0;如果为偶数,AH寄存器置0FFH。
26、 …….
NUM DW Y1, Y2, Y3, Y4
……
MOV BX, OFFSET NUM
MOV CH, 4
XOR AX, AX
TABLE: MOV CL, CH
MOV DX, [BX]
SHR DX, CL
ADD AX, DX
ADD BX, 2
DEC CH
JNZ TABLE
……..
执行上述程序段后,(AX)=___________________ (3分)
资料:(AX) = Y1/16 + Y2/8 + Y3/4 + Y4/2
27、 完成下列程序段,每空只填一条指令,使该程序段完成从端口300H输入2k字节数据到BUFFER开始的内存缓冲区中的功能。(每空1分,共2分)
MOV BX, OFFSET BUFFER
MOV CX, 0800H
MOV DX, 300H
L1: IN AL, DX
MOV [BX], AL
INC BX
DEC CX
JNZ L1
HLT
28、 已知(DS) = 1250H, (BX)= 55H, (SI)= 46H, (125ABH) = 39BH, (125ADH) = 1210H,则
LDS DI, 10H[BX][SI]
MOV AL, 110H[DI]
上述两条语句执行后,(AL)=____________, (DI) = ____________(每空2分,共4分)
资料:(AL)= 9BH, (DI) = 039BH
29、 设伪指令定义如下,画出内存示意图。(5分)
BUF DB ?
DW ‘AB’
DW ‘C’
DW 1234H
DB ‘ABCD’
-
‘B’
‘A’
‘C’
00H
34H
12H
‘A’
‘B’
‘C’
‘D’
资料:BUF
30、 …….
BUF DB 01H
…….
XOR AL, AL
MOV BL, AL
SAL AL, 1
ADD AL, BL
XOR AL, 0FFH
HLT
则上述程序段执行后,(AL)=__________, (BL)=__________, (CF) =_______(每空1分,共3分)
资料:(AL)=OFCH, (BL) = 01H, (CF) = 0
六、编程(30分)
1、编写一完整的汇编语言源程序,实现Z=(X + Y)/2。设X、Y、Z都在数据段,且设X=5AH,Y=35H。(12分)
资料:
TITLE CALCULATE Z=(X + Y)/2
DATA SEGMENT
X DB 5AH
Y DB 35H
Z DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DSATA
START PROC FAR
BEGIN: PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV AL, X
ADD AL, Y
MOV AH, 0
ADC AH, 00H
MOV BL, 02H
DIV BL
MOV Z, AL
RET
START ENDP
CODE ENDS
END BEGIN
2、 编制一完整的汇编语言源程序,将键盘输入的英文大写字母转换为小写字母并显示。(12分)
资料:
DATA SEGMENT
BUF DB 50 DUP(‘’)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DSATA
BEGIN: MOV AX, DATA
MOV DS, AX
MOV BX, OFFSET BUF
L1: MOV AH, 1
INT 21H
CMP AL, ‘A’
JB L1
CMP AL, ‘Z’
JA L1
ADD AL, 20H
MOV DL, AL
MOV AH, 2
INT 21H
JMP L1
MOV AH, 4CH
INT 21H
CODE ENDS
END BEGIN
3、 下面程序段是把CHAR1中各小写字母分别转换为大写字母,并存放在CHAR2中。试把空白处填上适当的指令。(6分)
CHAR1 DB ‘translation’
CHAR2 DB $-CHAR1 DUP(?)
VAR DB ‘A’, ‘a’
……..
MOV AL, VAR
_____(1)___________
LEA SI, CHAR1
LEA DI, CHAR2
MOV CX, LENGTH CHAR2
LOP: MOV AH, [SI]
______(2)___________
MOV [DI], AH
INC SI
INC DI
LOOP LOP
资料: (1)SUB AL, VAR + 1
(2)ADD AH,AL
久爱奥鹏网:www.92open.com |
|