一、判斷題
判斷下述指令的正誤。正確的打“√”,錯誤的打“×”。
1.MOV ES, 20H ( X )
2.SHL BX, 4 ( X )
3.PUSH 1122H ( X )
4.DIV 1000 ( X )
5.CMP AX, [SI][DI] ( X )
6.SHR BX,CL ( )
7.MOV DX,100H ( )
8.MOVSW ( )
9.ADD AX,BYTE PTR [SI] ( X )
10.RCL AL,1 ( )
11.MOV 300, ES:[BX+SI+100] ( X )
12.POP IP ( X )
13.SUB AX,BL ( X )
14.MOV IP,BX ( X )
15.ADD [SI],[BP] ( X )
16.MOV AX,A[BX] ;A是一個已定義的數組名 ( )有誤
17.MOV AX,[BX+100] ( )
18.MUL BX ( )
19.REPE SCASW ( )
20.LOOP LP1 ;LP1是一個已定義的標號 ( )
得分 |
閱卷人 |
二、填空題
1.XOR AX,BX,若運算結果( 非零 ),那麼AX、BX內容必定不同。
2.某指令存放地址是3000:0056H,則物理地址是( 30056H )。
3.-17H的8位原碼是( 10010001 )、反碼是( 11101110 )、補碼是( 11101111 )(用二進制形式填空)。
4.PC機中,有符號數都是用( 補 )碼存儲的。
5.指出下面指令源操作數的尋址方式
MOV AX,100 ( 立即尋址 )
MOV AX,[SI] ( 寄存器尋址)
MOV AX,[SI+100] ( 寄存器相對尋址)
MOV AX,[BX+SI] ( 基址+復址尋址)
MOV AX,[BX+SI+100] ( 基址+復址相對尋址)
6.已知DS=1000H,SI=0200H,BX=0100H,[10100H]=11H,[10101H]=22H
[10600H]=33H,[10601H]=44H,[10300H]=55H,[10301H]=66H
[10302H]=77H,[10303H]=88H,下面每條指令執行後,AX=?
MOV AX,1000H ( 1000H )
MOV AX,[BX+500H] ( 4433H )
MOV AX,[300H] ( 6655H )
MOV AX,[BX] ( 2211H )
MOV AX,[BX][SI] ( 6655H )
MOV AX,[BX+SI+2] ( 8877H )
7.有一數據段定義如下:
DATA SEGMENT
X DB 15 DUP(?)
L EQU $-X
DATA ENDS
符號名L的含義是(數組x的元素個數 ///數組x數 ),它的值是( 15 ),EQU可以寫成“=”嗎?( 可以 )。
三、分析題
1.PUSH BX
PUSH DX
POP BX
POP DX
這段程序的功能是什麼?
交換BX與DX的內容
2.MOV AX,-100
SAR AX,1
這段程序執行後AX的值是多少?
AX=-50
3.CMP AL,0
JGE K
NEG AL
K: ..........
這段程序的功能是什麼?
求AL的絕對值,送到AL
4.MOV AX,100
PUSH AX
POP BX
這段程序執行後BX的值是什麼?
BX=100
四、編程序段
1.把AX中的有符號數乘以8(假定積不溢出)。
MOV CL,3
SAL DX,CL
或者
MOV BX,8
IMUT BX(不建議)
2.已知第一個32位數存放在CX,AX中,其中CX中是高16位,AX是低16位,第二個32位數存放在DX,BX中,DX是高16位,BX是低16位,編寫程序段求這兩個32位數的和,存放在CX,AX中,其中CX中是高16位,AX是低16位。
ADD AX,BX
ADC CX,DX
3.統計AX中二進制位爲0的個數,結果存入BX。
MOV BX,0
MOV CX,16
K:LOOP LP
LP:
SHE AX 1
JC K
INC BX
得分 |
閱卷人 |
五、編程題
1.求一個字型數組X元素之和存入SUM單元(不考慮溢出)。
DATAS SEGMENT
X DW 3,8,6,4,5
N=($-X)/2
SUM DW ?
DATAS ENDS
2.X是一個字符串,編制一個完整程序,查找其中是否存在字符“A”,若存在,顯示“YES”,否則顯示“NO”。
6.SHR BX,CL ( )
7.MOV DX,100H ( )
8.MOVSW ( )
10.RCL AL,1 ( )
16.MOV AX,A[BX] ;A是一個已定義的數組名 ( )有誤
17.MOV AX,[BX+100] ( )
18.MUL BX ( )
19.REPE SCASW ( )