第三章 习题和思考题(汇编语言)
发布时间:2024-11-21
发布时间:2024-11-21
第三章 习题和思考题(汇编语言)
一.填空题
1.在汇编语言中标号的类型有_______,变量的类型有________。
2.在汇编语言中,一个过程的属性为NEAR,表明主程序和子程序______________;若为FAR,则表明主程序和子程序________________。
3.下列程序运行后,X单元的内容为________。
.MODEL SMALL
.DATA
X DW 10
Y DW 20
Z DW 100,40,66,80
.CODE
.STARTUP
MOV BX, OFFSET Z
MOV AX, [BX]
MOV Y, AX
MOV AX, [BX+2]
ADD AX, Y
MOV X, AX
.EXIT
END
4.以下程序执行后,(AX)=_________。
… …
A DW 124H,345H,128H,255H,512H,127H,678H,789H
B DW 5
… …
MOV BX, OFFSET A
MOV SI, B
MOV AX, [BX+SI]
二.选择题
1.完成41H送[2100H],42H送[2101H]的正确程序段是________。
A. MOV AL, 41H B. MOV SI, 2100H
MOV [2100H], AL MOV [SI], ‘A’
INC 41H INC SI
MOV [2100H], AL MOV [SI], ‘B’
C. MOV AX, 4241H D. MOV AX, ‘AB’
MOV [2100H], AX MOV [2100H], AX
2. 在汇编过程中不产生指令码,只用来指示汇编程序的指令是________。
A. 汇编指令 B. 机器指令 C. 伪指令 D. 宏指令
三.问答题
1.什么是指令语句?什么是伪指令语句?它们的主要区别是什么?
2. 试计算下列伪指令中各变量所分配的字节数
A1 DW 20
A2 DW 8DUP(?),10,20
A3 DD 10DUP(?)
A4 DB 3DUP(?,4DUP(0))
A5 DB ‘Happy New Year!!’
四.阅读程序
1.请把下列程序中所缺语句补充完整,并回答问题:
TITLE EXAMPLE.ASM
DATA SEGMENT
A DW 0
B DW 0
C DW 230, 20, 54
CODE SEGMENT
ASSUME
PROG PROC FAR
START:
PUSH DS
MOV AX,0
MOV AX,DATA
MOV BX,OFFSET C
MOV AX,[BX]
MOV B,AX
MOV AX,2[BX]
ADD AX,B
MOV A,AX
EXIT:
CODE ENDS
问题: 1.程序执行完后,A单元的内容是多少?
2.在以ES:SOC1为起始地址的表中存有字符串,它以NULL(00H)作为串结束符。在DS:CHAR中存有关键字。从表中查找第一个此关键字的程序段如下。若找到此关键字,则寄存器CX中存放该关键字在ES段中的位移量;若串中无此关键字,则CX返回-1值。请将该程序段补充完整。
MOV DI, OFFSET SOC1
MOV CX, 0
CPO: CMP ES: (1)_________,00H
JNE COUNT
MOV BX, CX
MOV DI, OFFSET CHAR
MOV AL, [DI]
MOV DI, OFFSET SOC1
CLD
(2)_________SCASB
JZ FOUND
MOV CX, (3)________
JMP DOWN
FOUND: (4)_________DI
MOV CX, DI
JMP DOWN
COUNT: INC DI
INC CX
JMP CPO
DOWN: HLT
3.下面的程序是将10个8位的无符号数按递减顺序排序。请选择正确的答案将程序填充完整。
.MODEL SMALL
.DATA
ARRAY DB 05H,78H,FFH,7BH,00H
DB 8CH,20H,A0H,F0H,60H
.CODE
.STARTUP
MOV SI, OFFSET ARRAY
MOV BL, 9
AB1: MOV CX, BL
(1)______
AGAIN: MOV AL, [SI]
INC SI
CMP AL, [SI]
(2)_______CD1
MOV AH, [SI]
MOV [SI], AL
DEC SI
MOV [SI], AH
INC SI
CD1: LOOP AGAIN
DEC BL
(3)__________AB1
.EXIT
END
4. 下列程序段实现从键盘输入一系列字符,并以“$”为结束符,然后对其中的非数字字符进行计数,并显示结果。程序中有若干错误,试改正。
…
BUFF DB 50 DUP(?)
COUNT DW 0
…
MOV BX, BUFF
MOV COUNT, 0
INPUT: MOV AH, 01
INT 21H
MOV [BX], AL
INC BX
CMP AL, ‘$’
JZ INPUT
LEA BX, BUFF
NEXT: MOV CL, [BX]
INC BX
CMP CL, ‘$’
JZ DISP
CMP CL, 30H
JG CONT
CMP CL, 39H
JB NEXT
CONT: INC COUNT
JMP NEXT
DISP: …
5.读下列程序
.CODE
.STARTUP
MOV AX, 01
MOV BX, 02
MOV DX, 03
MOV CX, 04
AGAIN: INC AX
ADD BX, AX
SHR DX, 1
__________
.EXIT
END
若在横线上填入如下指令:
(1) LOOP AGAIN
(2) LOOPE AGAIN
(3) LOOPNE AGAIN
指出程序执行完后AX、BX、CX、DX的内容。
下一篇:新人教版八年级上物理实验进度表