2018年自考《汇编语言程序设计》习题七
21. 如果把AX,BL和DH中的内容分别乘以8,使用下面指令序列能完成此工作吗?为什么?
MOV CL,3
SHL AX,CL
SHL BL,CL
SHL DH,CL
22. 什么是宏指令语句?为何要使用宏指令语句?如何使用?
23.下列语句中,哪些是无效的汇编语言指令?并指出无效指令中的错误。
(1)MOV SP,AL
(2) MOV WORD-OP[BX+4*3][SI],SP
(3) MOV VAR1,VAR2
(4) MOV CS,AX
(5) MOV DS,BP
(6) MOV SP,SS:DATA-WORD[SI][DI]
(7) MOV AX,VAR1+VAR2
(8) MOV AX,[BX-SI]
(9) INC [BX]
(10) MOV 25,[BX]
(11) MOV [8-BX],WORD PTR 25
(12) MOV AL,DATA2[SI]
(13) MOV AX,OLA-DATA
(14) MOV AX,[BX*7]
(15) MOV AL,BYTE PTR[SI-100H]
24.若数组ARRAY在数据段中已作以下定义
ARRAY DW 100 DUP(?)
试指出下列语句中操作数中的各操作符的作用,指令执行后各寄存器产生了什么变化?
MOV BX,OFFSET ARRAY
MOV CX,LENGTH ARRAY
MOV SI,0
ADD SI,TYPE ARRAY
25. 试分析下列程序段,说明完成了什么操作?
SKEY DB 2
…
START: MOV AL,SKEY
LEA BX,BRATB
SHL AL,1
XOR AH,AH
ADD BX,AX
JMP BX
…
BRATB: JMP SHORT ZERO
JMP SHORT ONE
JMP SHORT TWO
JMP SHORT THREE
…
26.执行下列程序段前,BUFFER存储区的数据为:
DB 1,2,3,4,5,6
请给出执行下面程序段后BUFFER存储区中的数据。
MOV SI,OFFSET BUFFER
MOV CX,5
XOR AL,AL
AGAIN: SHL [SI],1
INC SYTE PTR[SI]
ADD AL,[SI]
INC SI
LOOP AGAIN
MOV [SI],AI
HLT
27.判断下列指令或程序是否有错,若有错,请指出错在哪里?
(1)K1 EQU 1024
…
MOV K1,AX
(2) MOV DS,100
MOV [1000],[2000]