一、 填空
1.
2.8088或8086CPU中PSW共有9个标志位,它们可分为两组,其中6个为状态标志,3个为 控制 标志。
3. 计算机系统由_____硬件系统_____和_____软件系统_____两部分构成。
4.8086/8088中断源分为两大类:外部中断和____内部中断______。
5.8088或8086中共有4个段寄存器,它们分别是,。
6. 8088或8086中的偏移地址最大是___FFFFH_________。
7.计算54H-6EH后,它的结果影响状态标志位的值,其中CF=__1_____。
8、串行通信的3种传送模式有_单工传送__、__半双工传送__、_全双工传送__。
二、判断题
1.MOV BYTE PTR [100H],AX
2.PUSH 100H
3.MOV AX,[BX+100H]
4.MOV AX,[CX+100H]
5.ADD AX,200H (√)
三、 计算题 (× (× (× ) (√ ) ) )
1.(127. 5)10=( 1111111.1 )2=( 7F.8H )16
2.今有两个补码分别是0FFFFH和0FFFEH,则两数之和的十进制数为( -3 )。
3.若某存储单元物理地址为103FAH,求出下列不同的逻辑地址:
(1)1016H:( 029AH ) (2)( 0FF0H ):04FAH
四、 寻址方式
指出下列指令中源操作数的寻址方式,并计算源操作数的物理地址。
(DS)=2000H,(ES)=3000H,(SS)=4000H,(SI)=100H,(BX)=200H,(BP)=300H,数据段中的字变量VAL的偏移地址为40H。
1. MOV AX,[BX+16] 变址寻址 20016H
2. MOV AX,VAL 直接寻址 20040
3. MOV AX,VAL[BP] 变址寻址 40340
4. MOV AX,ES:[BX][SI] 基址变址寻址 30300
5. MOV AX,VAL[BX][SI] 基址变址寻址 20340
五、 程序分析题
1.(5分)设AX:BX构成32位无符号数。
MOV CL,8
ROR BX,CL
ROR AX,CL
MOV BH,AH
MOV AH,0
此程序段的功能是:___将无符号数除16_____
2. (5分)X,Y,Z均为存放16位无符号数的存储单元,写出程序运行后AX的完整表达式。
MOV AX,X
MUL Y
SUB AX,680
SBB DX,0
DIV Z
(AX)=_____ (X*Y-680)/Z ______
六、 根据要求写出相应的指令序列。
a) 将BX:CX组成的32位有符号数乘以4。(用移位指令)
shl cx,1
rcl bx,1
shl cx,1
rcl bx,1
b) 使AL寄存器的D0位置1,D1位置0,其余位保留不变。
or al,01H
and al,02H
c) 若某负数的原码存放在AL寄存器中,求出该数的补码,放在AL中。
bt al,7
jnc f1
neg al
inc al
f1:or al,0ffH
d) 设有数据段如下:
DATA SEGMENT
STR DB ‘THANK’
DATA ENDS
(1)将字符’T’送入AL寄存器中。
(2) 将字符’TH’送入AX寄存器中。
1)mov al,str
2)mov ah,byte str mov bx,01H mov al,[bx+str]
e) 设AX、BX寄存器中为无符号数,若AX的值高于等于BX的值,转至L1,否则转至L2。
cmp ax,bx
jae l1 l2:……
七、 编程题:
编写一个完整的汇编语言程序,找出有符号字数组中的最大数,存入MAX变量中。
data segment
Dar db 27,-8,78,……
Max db ?
Data ends
Stack segment stack
Db 100H dup(?)
Stack ends
Code segment
Assume cs:code,ds:data,ss:stack
Start:mov ax,data
Mov ds,ax
Mov cx,10
Mov si,offset dar
L1:mov al,[si]
Or al,al
Js l2
Mov max,al
L2:inc si
Loop l1
Mov max,al
Mov ah,4ch
Int 21h code ends ends start
二、 填空
1.中断返回时要恢复__程序断点地址__和__被中断前的程序状态字_才能返回主程序继续执行。
2.程序设计语言是指用于编写程序的语言,主要包括_机器语言__,_汇编语言__,__高级语言__。 3.在存贮器型堆栈中需要一个___堆栈指示器__,用它来指明___栈顶地址___的变化。 4.在下列寻址方式中为了取出操作数,需访问内存几次。 a.立即寻址____0_______次 b.直接寻址_____1______次
5.8088/8086CPU中,通用寄存器中的SP和BP为____指针__寄存器,SP的作用是_指出当前堆栈的栈顶_的位置。
6.8088/8086指令系统中的算术运算指令,可实现__无符号__数或___有符号_数的四则运算。 7.在汇编语言中,所使用的三种基本语句分别是__指令语句__、__伪指令语句_和宏指令语句。
二、单项选择题
1.在CPU中跟踪下一条指令地址的寄存器( C A.主存地址寄存器 B.指令寄存器 )。
C.指令计数器 D.状态条件寄存器
2.某机器字长16位,它的存贮容量是64KB位,若按字编址,则它的寻址范围是( D )。 A.64KB B.32KB C.64K D.32K
A.微程序控制 B.存贮程序控制
C.组合逻辑控制 D.同步控制
4.下列数码中设有奇偶校验位,检测数据是否有错误,试问采用偶校验时,哪个数据出错( A )。 A.11011010 B.1010110 C.01100110 D.10010101 5.寄存器间接寻址中,操作数放在( B )。 A.通用寄存器 B.主存单元 C.堆栈 D.程序计数器
三、计算题
1.已知数据(1 3 2)8,(38)16,(10010011)BCD,请将它们分别化为十进制数,并找出其中最大的数。 (1)(1 3 2)8= 90 (3 8)16= 56H (10010011)BCD=93 (2)最大的数是:(10010011)BCD
2.采用补码进行14-9=?运算(用6位二进制表示,最左边位为符号位),并判断结果是否溢出?
[X]补=001110,[Y]补=001001,[-Y]补=110111
001110
+ 110111
——————————
1000101 结果溢出。
四、分析题
1.请将左边的词汇和右边的说明联系起来,即在括号内填入所选的A、B、C…(每个2分,共18分) (1)CPU ( I ) A.保存当前栈顶地址的寄存器 (2)EU ( G ) B.告诉CPU要执行的操作,在程序运行时执行 (3)堆栈( E ) C.唯一代表存贮空间中的每个字节单元的地址 (4)SP ( A ) D.能被计算机直接识别的语言 (5)控制标志( H ) E.以后进先出方式工作的存贮器空间
(8)连接程序( F ) H.控制操作的标志 (9)指令 ( B ) I.分析并控制指令执行的部件
2.指出下列指令的错误(每个3分,共9分)
(1)ADD (2)MOV (3)MOV 21H,BX :立即数不能作目的操作数 :SI和DI不能一起使用 AX,[SI][DI] ALFA1,ALFA2 :MOV指令不允许存贮单元之间数据传送
3.程序改错(共4分)本程序的作用是将以S1为起始地址的20个字符,依次传送致电同数据段的以S2为起始地址的一段字节之中,请指出程序中哪条指令有错误,并加以改正。(S1[SI]和S2[SI]分别表示S1、S2中各字节的有效地址,[SI]表示距S1或S2的起始地址的字节数。)
程序:MOV SI,0 MOV CS,10 NEXT:MOV AL,S1[SI] MOV S2[SI],AL INC S1;[SI] LOOP 改正:MOV SI,0 MOV CX,20 MEXT:MOV AL,S1[SI]
MOV S2[SI],AL
INC SI LOOP
六、简单程序设计
1.有两个无符号数分别存放于DATA1和DATA2单元,要求将两数中大的一个挑选出来,并送入DATA3单元。(10分)
MOV AL,DATA1
MOV AL,DATA2 DATA3,AL S1: MOV HLT
2.统计以BUF为首地址的N个字单元中,正数、负数及零的个数,并将个数分别存入P,M及ZERO单元中。(14分)
Mov bx,00H
Mov dx,00H
Mov cx,N
Mov si,offset buf
L1:mov al,[si]
Or al,al
Js l2
Jz l3
Inc bl
Jmp f1
L2:inc bh
Jmp f1
L3:inc dl
F1:inc si
Loop l1
Mov p,bl
Mov m,bh
Mov zero,dl
一、 填空
1.
2.8088或8086CPU中PSW共有9个标志位,它们可分为两组,其中6个为状态标志,3个为 控制 标志。
3. 计算机系统由_____硬件系统_____和_____软件系统_____两部分构成。
4.8086/8088中断源分为两大类:外部中断和____内部中断______。
5.8088或8086中共有4个段寄存器,它们分别是,。
6. 8088或8086中的偏移地址最大是___FFFFH_________。
7.计算54H-6EH后,它的结果影响状态标志位的值,其中CF=__1_____。
8、串行通信的3种传送模式有_单工传送__、__半双工传送__、_全双工传送__。
二、判断题
1.MOV BYTE PTR [100H],AX
2.PUSH 100H
3.MOV AX,[BX+100H]
4.MOV AX,[CX+100H]
5.ADD AX,200H (√)
三、 计算题 (× (× (× ) (√ ) ) )
1.(127. 5)10=( 1111111.1 )2=( 7F.8H )16
2.今有两个补码分别是0FFFFH和0FFFEH,则两数之和的十进制数为( -3 )。
3.若某存储单元物理地址为103FAH,求出下列不同的逻辑地址:
(1)1016H:( 029AH ) (2)( 0FF0H ):04FAH
四、 寻址方式
指出下列指令中源操作数的寻址方式,并计算源操作数的物理地址。
(DS)=2000H,(ES)=3000H,(SS)=4000H,(SI)=100H,(BX)=200H,(BP)=300H,数据段中的字变量VAL的偏移地址为40H。
1. MOV AX,[BX+16] 变址寻址 20016H
2. MOV AX,VAL 直接寻址 20040
3. MOV AX,VAL[BP] 变址寻址 40340
4. MOV AX,ES:[BX][SI] 基址变址寻址 30300
5. MOV AX,VAL[BX][SI] 基址变址寻址 20340
五、 程序分析题
1.(5分)设AX:BX构成32位无符号数。
MOV CL,8
ROR BX,CL
ROR AX,CL
MOV BH,AH
MOV AH,0
此程序段的功能是:___将无符号数除16_____
2. (5分)X,Y,Z均为存放16位无符号数的存储单元,写出程序运行后AX的完整表达式。
MOV AX,X
MUL Y
SUB AX,680
SBB DX,0
DIV Z
(AX)=_____ (X*Y-680)/Z ______
六、 根据要求写出相应的指令序列。
a) 将BX:CX组成的32位有符号数乘以4。(用移位指令)
shl cx,1
rcl bx,1
shl cx,1
rcl bx,1
b) 使AL寄存器的D0位置1,D1位置0,其余位保留不变。
or al,01H
and al,02H
c) 若某负数的原码存放在AL寄存器中,求出该数的补码,放在AL中。
bt al,7
jnc f1
neg al
inc al
f1:or al,0ffH
d) 设有数据段如下:
DATA SEGMENT
STR DB ‘THANK’
DATA ENDS
(1)将字符’T’送入AL寄存器中。
(2) 将字符’TH’送入AX寄存器中。
1)mov al,str
2)mov ah,byte str mov bx,01H mov al,[bx+str]
e) 设AX、BX寄存器中为无符号数,若AX的值高于等于BX的值,转至L1,否则转至L2。
cmp ax,bx
jae l1 l2:……
七、 编程题:
编写一个完整的汇编语言程序,找出有符号字数组中的最大数,存入MAX变量中。
data segment
Dar db 27,-8,78,……
Max db ?
Data ends
Stack segment stack
Db 100H dup(?)
Stack ends
Code segment
Assume cs:code,ds:data,ss:stack
Start:mov ax,data
Mov ds,ax
Mov cx,10
Mov si,offset dar
L1:mov al,[si]
Or al,al
Js l2
Mov max,al
L2:inc si
Loop l1
Mov max,al
Mov ah,4ch
Int 21h code ends ends start
二、 填空
1.中断返回时要恢复__程序断点地址__和__被中断前的程序状态字_才能返回主程序继续执行。
2.程序设计语言是指用于编写程序的语言,主要包括_机器语言__,_汇编语言__,__高级语言__。 3.在存贮器型堆栈中需要一个___堆栈指示器__,用它来指明___栈顶地址___的变化。 4.在下列寻址方式中为了取出操作数,需访问内存几次。 a.立即寻址____0_______次 b.直接寻址_____1______次
5.8088/8086CPU中,通用寄存器中的SP和BP为____指针__寄存器,SP的作用是_指出当前堆栈的栈顶_的位置。
6.8088/8086指令系统中的算术运算指令,可实现__无符号__数或___有符号_数的四则运算。 7.在汇编语言中,所使用的三种基本语句分别是__指令语句__、__伪指令语句_和宏指令语句。
二、单项选择题
1.在CPU中跟踪下一条指令地址的寄存器( C A.主存地址寄存器 B.指令寄存器 )。
C.指令计数器 D.状态条件寄存器
2.某机器字长16位,它的存贮容量是64KB位,若按字编址,则它的寻址范围是( D )。 A.64KB B.32KB C.64K D.32K
A.微程序控制 B.存贮程序控制
C.组合逻辑控制 D.同步控制
4.下列数码中设有奇偶校验位,检测数据是否有错误,试问采用偶校验时,哪个数据出错( A )。 A.11011010 B.1010110 C.01100110 D.10010101 5.寄存器间接寻址中,操作数放在( B )。 A.通用寄存器 B.主存单元 C.堆栈 D.程序计数器
三、计算题
1.已知数据(1 3 2)8,(38)16,(10010011)BCD,请将它们分别化为十进制数,并找出其中最大的数。 (1)(1 3 2)8= 90 (3 8)16= 56H (10010011)BCD=93 (2)最大的数是:(10010011)BCD
2.采用补码进行14-9=?运算(用6位二进制表示,最左边位为符号位),并判断结果是否溢出?
[X]补=001110,[Y]补=001001,[-Y]补=110111
001110
+ 110111
——————————
1000101 结果溢出。
四、分析题
1.请将左边的词汇和右边的说明联系起来,即在括号内填入所选的A、B、C…(每个2分,共18分) (1)CPU ( I ) A.保存当前栈顶地址的寄存器 (2)EU ( G ) B.告诉CPU要执行的操作,在程序运行时执行 (3)堆栈( E ) C.唯一代表存贮空间中的每个字节单元的地址 (4)SP ( A ) D.能被计算机直接识别的语言 (5)控制标志( H ) E.以后进先出方式工作的存贮器空间
(8)连接程序( F ) H.控制操作的标志 (9)指令 ( B ) I.分析并控制指令执行的部件
2.指出下列指令的错误(每个3分,共9分)
(1)ADD (2)MOV (3)MOV 21H,BX :立即数不能作目的操作数 :SI和DI不能一起使用 AX,[SI][DI] ALFA1,ALFA2 :MOV指令不允许存贮单元之间数据传送
3.程序改错(共4分)本程序的作用是将以S1为起始地址的20个字符,依次传送致电同数据段的以S2为起始地址的一段字节之中,请指出程序中哪条指令有错误,并加以改正。(S1[SI]和S2[SI]分别表示S1、S2中各字节的有效地址,[SI]表示距S1或S2的起始地址的字节数。)
程序:MOV SI,0 MOV CS,10 NEXT:MOV AL,S1[SI] MOV S2[SI],AL INC S1;[SI] LOOP 改正:MOV SI,0 MOV CX,20 MEXT:MOV AL,S1[SI]
MOV S2[SI],AL
INC SI LOOP
六、简单程序设计
1.有两个无符号数分别存放于DATA1和DATA2单元,要求将两数中大的一个挑选出来,并送入DATA3单元。(10分)
MOV AL,DATA1
MOV AL,DATA2 DATA3,AL S1: MOV HLT
2.统计以BUF为首地址的N个字单元中,正数、负数及零的个数,并将个数分别存入P,M及ZERO单元中。(14分)
Mov bx,00H
Mov dx,00H
Mov cx,N
Mov si,offset buf
L1:mov al,[si]
Or al,al
Js l2
Jz l3
Inc bl
Jmp f1
L2:inc bh
Jmp f1
L3:inc dl
F1:inc si
Loop l1
Mov p,bl
Mov m,bh
Mov zero,dl