当前位置:文档之家› 南昌大学汇编期末考试复习题

南昌大学汇编期末考试复习题

8086CPU中有4个数据寄存器,其中AX除用作通用寄存器外,还可用作( )。

A、累加器
B、计数器
C、基址寄存器
D、段寄存器
1.下列指令使用正确的是()
A.MOV DS, IBABH C. MOV BYTE PTR[BX], BYTE PTR [SI]
B.POP DL D. ADD BYTE PTR [100H], -1
2.用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是
()
A. ADD AX,[BX][SI] C. MOV AX, [BX][SI]
B. AND AX, [BX][SI] D. LEA AX, [BX][SI]
3.下面指令可能不能够将AX清零的是()
A.MOV AX,0 C. AND AX,0
B.XOR AX,AX D. SBB AX,AX
已知AX寄存器的内容为000FH,执行DIV AL后,AL的值为。

1.从1234号端口读入一个字节,并存放到DL寄存器的指令序列为:。

SUB AX, AX
MOV BX, 1
MOV CX, 10
A:ADD AX, BX
ADD BX, 3
LOOP A
问:执行上段程序后,AX= ,BX= ,CX= 。

如果当前(SP)=0058H,执行POP AX指令后,(SP)=( )。

A、60H
B、56H
C、59H
D、5AH
已知BX=028AH,SI=0294H,(DS:051EH)=5432H。

执行语句LEA BX,[BX+SI]后,BX中的内容是()
A.051EH B.5423H
C.1E05H D.3254H
设SP初值为3050H,执行指令PUSH BX后,SP的值是()A.304FH B.304EH
C.3048H D.3049H
如果(AL)=35H,执行AND AL,0FFH指令后,CF=()(A)0 (B)1
(C)2 (D)和执行AND AL,0指令前的取值保持一致
如果(AL)=01111111B,执行INC AL指令后,CF=()(A)1 (B)0
(C)2 (D)和执行INC AL指令之前的取值保持一致
如果(SP)=80H,执行指令CALL FAR PTR PR1后(SP)=()
(A)80H (B)84H
(C)7CH (D)7EH
表示宏定义结束的伪指令是()。

A.ENDP
B.ENDS
C.END
D.ENDM
如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,正确的执行结果为(C)
(A)(DS)=5570H,(SI)=0088H (B)(DS)=0235H,(SI)=0E60H
(C)(DS)=0E60H,(SI)=0235H (D)(DS)=0088H,(SI)=5570H
如果(AL)=66H,执行如下程序片段后,正确的执行结果为(B)
STC
OR AL,1
ADC AL,82H
(A)(AL)=0E9H,CF=1 (B)(AL)=0E9H,CF=0
(C)(AL)=0EAH,CF=0 (D)(AL)=0EAH,CF=1
指令MOV AX,[2000H]的寻址方式为()。

A. 基址寻址
B. 寄存器间接寻址
C.变址寻址
D.存储器直接寻址
1、 MOV CS,0918H
2、MOV 6,CX
MUL CL,DL
3、
假设ES段中有一个字符串’12FG3LM5C’,其名为ARRAY,下面的程序段执行后CX的值为()。

cld
lea di,es:array
mov al,'L'
mov cx,9
repne scasb
阅读下列程序段,程序执行到HLT时,(AX)=(),(BX)=()。

(4分)
xor ax,ax
mov bx,1
mov cx,6
lop:add ax,bx
inc bx
loop lop
hlt
下列语句在存储器中分别为变量数据区分配多少个字节单元?
(1) VAR1 DD 10
(2) VAR2 DW 4 DUP(?),2
有符号定义语句如下:
ARRAY1 DB 3,6,9,‘123’
ARRAY2 DB 0
L EQU ARRAY2-ARRAY1
问L的值是多少?
现的下列程序段:
ORG 0050H
DA1 DW 56H,78H
DA2 EQU $ -DA1
DA3 DB ?

LEA BX, DA3
MOV CX,DA2
MOV AX, DA2 SHR 1
问:(AX)=(),(BX)=(),(CX)=()。

设:
XOR AX,0
MOV BX,1
MOV CX,10
LOP: ADD AL,BL
INC BL
INC BL
LOOP LOP
问:(1)该程序完成的功能是什么?(2)程序执行后(AX)=()。

现的下列程序段:
DATA SEGMENT
DA1 DW 123H,456H,0AB00H
DA2 DB 12H,34H,56H,0ABH
DB S –DA2
BUF DB 10H DUP(1,2,3)
(1)
MOV BX,[0006]
AND BX,0FFH
AND BX,[BX]
上述指令执行后,BX=();
(2)
MOV DX,SIZE BUF
ADD DX,DA2+4
上述指令执行后,DX=()。

、程序填空题(每题6分,共12分)
1.设已定义数据区如下:
DATA SEGMENT
DAX DB XXH
DAY DB?
DATA ENDS
下列程序段完成功能:判断变量DAX的值是否大于等于0。

若大于等于0,则将DAY单元置为0FFH;否则,将DAY单元的值置为00H。

请在空白处填上适当的指令(每一空白处只填一条指令)。

MOV AL,DAX
CMP AL,0
①______________________
MOV AL,0
②______________________
GRE: MOV AL,0FFH
LEE: MOV DAY,AL
下列程序段实现1+2+3+…+100的累加和,试在空白处填上适当的指令(每空白处只填一条指令)。

①__________________
MOV AX, 1
MOV BX, 2
LOP: ADD AX, BX
INC BX
②_________________
已知数据段中定义有
DA1 DB 83H,72H,61H,94H,5AH

MOV CX,WORD PTR DA1
AND CX,0FH
MOV AL,DA1+3
SHL AL,CL
上述指令序列执行后, AL,CL的内容分别是多少?
分析如下程序
MOV BL,64H
MOV CL,03H
XOR AX,AX
AGAIN: ADD AL,BL
ADC AH,0
DEC CL
JNZ AGAIN
试回答:(1)该程序段完成的功能是什么?
(2)此程序段执行后AX的值是多少?
完成下列操作,选用什么指令:
(1)将AX的内容,减去0520H,和上次运算的借位;
(2)将变量名TABL的段地址送AX;
D1 DB 20H DUP(?)
D2 DW D1
请写出用一条指令实现取D1的偏移地址=>SI中的三种方法。

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

TEST AX,8000H
___________
MOV PLW,BX
JMP DONE
K1:________
DONE:
①JE K1或JZ K1
②MOV PLW,AX
现有下列数据段:
DATA SEGMENT
STR1 DB‘ABCDEFGH IJKL'
COUNT EQU -STR1
BUF DB COUNT DUP(0)
DATA ENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区
(即STR1中第一个字符送到BUF的最后一个单元,STR1中最
后一字符送到BUF的第一个单元)。

试把程序中所空缺的指令填上。

MOV SI,OFFSET BUF-1
MOV DI,OFFSET BUF
MOV CX,COUNT
________
LOOP:MOVSB
________________
LOOP LOP
2.①CLD ②SUB SI,2
或①STD②ADD DI,2
判断变量X的值是否为偶数。

说明:定义数据段,X 为字节类型,初值为?;定义 YES,“It is an even number”,定义NO,“It is an odd number”;写出完整的程序段。

相关主题