第五章 汇编语言程序设计
一、选择题
1.下列指令中,错误的指令条数为( )
MOV SI,OFFSET[BX+3] XCHG AH,AL MUL 10 IN AX,380H
A.1 B.2 C.3 D.4 2.下面存储单元定义伪指令正确的是( )
A.BUF DW 99 B.BUF DB 25*60 C.BUF DD ‘ABCD’ D.BUF DW ‘D’
3.若BUFFER已定义为字变量,且BX=0,则下列4条指令中可相互替代的是(a.LEA SI,BUFFER b.MOV SI,OFFSET BUFFER c.LEA SI,[BX+BUFFER] d.MOV SI [BX+BUFFER
A.a、d B.a、b、c C.a、b、c、d D.a、b 4.下列几条伪指令经汇编后,变量COUNT的值为( )。
START DB 10 DUP(10) DW 5 DUP(5) COUNT EQU $-START
A.15 B.20 C.30 D.40 5.下面的两条伪指令汇编后,ND单元的值为( ) NC DB 2DUP(4,2DUP(4,2)) ND DB $-NC
A.1 B.2 C.10 D.12
二、 读简短程序题
1. NUM DW ?
NAME DW 10 DUP ( ? ) CNT EQU 10
LEN EQU $--NUM MOV AX, LEN 运行程序后AX=( )
2. TABLE DW 10, 20, 30, 40, 50, 60, 70, 80,
ENTRY DW 6
MOV BX, OFFSET TABLE ADD BX, ENTRY MOV AX, BX 程序执行后, AX=( )
3. DAT1 DW ?,18 DUP(8)
DAT2 DB 80,66,12,10,178,100,8 DAT3 DD ?,?,16 COUT1 EQU $-DAT2 COUT2 EQU $-DAT1
问COUT1、COUT2的值以及上述数据定义占用内存的大小( )(
( ) ))
4. 某数据段定义如下:
DATA SEGMENT 设DATA的段地址是1000H,则 X DW 32 DUP(?)
M DD 32 DUP(?) 变量Z的偏移地址是( ) Y EQU 1234H
Z DB 20H 物理地址是( ) DATA ENDS
5. 执行下面的程序段后,寄存器AX的值是( ),寄存器BX的值是( )。
TABLE1 DD 1
TABLE2 DW 20 DUP(?)
MOV AX , 1 MOV BX ,2
ADD AX ,TYPE TABLE1 ADD BX ,SIZE TABLE2
三、 读完整程序题
1. DSEG SEGMENT
BLOCK DB 51, 30,43,107, ,90,200,197,70, COUNT $-BLOCK RESULT DB 0 DSEG ENDS CODE SEGMENT
ASSUME CS: CODE,DS: DSEG,SS:STACK MAIN: MOV AX, DSEG MOV DS, AX
MOV SI, offset BLOCK MOV CX, COUNT CON: MOV AL, [ SI ] TEST AL, 01H JZ NEXT INC RESURT NEXT: INC SI LOOP CON
MOV AH, 4CH INT 21H CODE ENDS
END MAIN 1) 程序完成的操作是( )
2) 程序执行后,RESULT 单元中的内容为( )
2. DADA SEGMENT BUF1 DB MM BUF2 DB ? DATA ENDS CODE SEGMENT
ASSUME CS: CODE, DS: DATA MAIN: MOV AX , DATA MOV DS , AX
MOV BX , OFFSET BUF1 MOV DI , OFFSET BUF2 MOV AH , [ BX ] TEST AH , 80H JZ NEXT1
MOV AH , 0FFH
JMP NEXT2
NEXT1:MOV AH , 00H NEXT2:MOV [DI],AH MOV AH, 4CH INT 21H CODE ENDS
END MAIN
设MM为一符号数,问:
1) 程序完成的操作是( )
2) 当MM为80H时,程序执行后BUF2单元的内容为(
3. 阅读下列程序:
DATA SEGMENT
DA1 DB 2,-3,-4,-5,34,-4,0,3,4,24 COUNT EQU $ -DAI NUM DB? DATA ENDS COSEG SEGMENT
ASSUME CS: CODE,DS: DATA START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET DA1 MOV CX,COUNT-1 XOR BL,BL
EXCHG: MOV AL,[SI];
XOR AL,[SI+1] TEST AL,80H JE NEXT INC BL
NEXT: INC SI
)
LOOP EXCHG MOV NUM,BL
COSEG ENDS
END START
回答以下问题:1)程序执行后, NUM单元中的内容为 ( )
2)指令MOV SI ,OFFSET DA1可用指令( )替代。
4. 阅读程序:
DATA SEGMENT
TABLE DB 60H,40H,50H,80H,30H COUNT DB $_TABLE DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA MAIN : MOV AX ,DATA
MOV DS ,AX
MOV CX ,COUNT MOV DX ,CX DEC DX
LEA BX ,TABLE
LOP0: MOV SI ,00H
MOV CX ,DX
LOP1: MOV A L,[BX+SI]
CMP AL ,[BX+SI+1] JBE NEXT
XCHG AL,[BX+SI+1] MOV [BX+SI],AL
NEXT: INC SI
LOOP LOP1 DEC DX JNZ LOP0
MOV AH, 4CH INT 21H
CODE ENDS
END MAIN 回答以下问题:
1)该程序的功能是( )
2)程序运行结束时,TABLE+3单元的内容是( ) 3)程序中DX寄存器的作用是( )
4)若将JBE NEXT改为JAE NEXT,则对程序的影响是(
)
5. 阅读程序
DATA SEGMENT NUM DW 8088H RESULT DB? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA MAIN: MOV AX ,DATA
MOV DS ,AX MOV CX ,16 MOV AX ,NUM
LOP1: AND AX ,AX
JZ DONE SHL AX ,1 JNC NEXT INC CH
NEXT: DEC CL
JNZ LOP1 MOV RESULT,CH
CODE ENDS END MAIN 回答以下问题:
1)该程序的功能是( )
2)程序运行结束时,RESULT单元的内容是( ) 3)指令AND AX,AX在程序中的作用是( )
6. 阅读下列程序:
DATA SEGMENT
DATA1 DB 9,-3,-4,-7H,34,-18,0,3,-6,21 COUNT EQU $ -DATAI DATA ENDS COSEG SEGMENT
ASSUME CS: CODE,DS: DATA START: MOV AX ,DATA
MOV DS ,AX
MOV DI ,OFFSET DA1 MOV CX ,COUNT-1 XOR BX ,BX
EXCHG: MOV AL ,[DI];
XOR AL ,[DI+1] TEST AL ,80H JE NEXT INC BX
NEXT: INC DI
LOOP EXCHG
COSEG ENDS
END START
回答以下问题:1)该程序的功能是( )
2)程序运行结束时,BX寄存器中的内容是( )
7. DATA SEGMENT
DA1 DB 95H,34H,6BH DA2 DB 05H,2EH,72H DA3 DB ?,?,? COUNT EQU 3 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX ,DATA MOV DS ,AX LEA DI ,DA1 LEA SI ,DA2 XOR AL ,AL
MOV BX ,OFFSET DA3+2 MOV CX ,COUNT
MU1: MOV AL ,[DI+03H] ADC AL ,[SI+03H] MOV [BX],AL DEC DI DEC SI DEC BX LOOP MU1 CODE ENDS
END STATR 回答以下问题:
1)该程序完成的操作是( )
2)程序运行结束后,DA3开始的三个单元中的内容为(
8.已知下列程序段:
DATA SEGMENT
DB1 DB 12H,34H,0,56H
DW1 DW 78H,90H,0AB46H,1234H ADR1 DW DB1 ADR2 DW DW1
BUF DB 5 DUP(0) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
BEGIN:MOV AX ,DATA
)
MOV DS ,AX XOR CX ,CX MOV CL ,3 ADD ADR1,CX SUB ADR2,CX MOV BX ,ADR1 MOV DI ,BX MOV SI ,ADR2 MOV AL ,DB1[BX] MOV BUF [DI],AL MOV AX,DW1[BX][SI] MOV WORD PTR BUF,AX MOV AH,4CH INT 21H START ENDP CODE ENDS
END BEGIN
上述程序运行结束后,BUF中各字节单元内容是什么?
地址偏移量 内 容 BUF
四、编程题
1.在内存DATA1中,存放着10个带符号的8位二进制数,试编程求它们的最大值,最小值,
以及它们存放的单元(即找出该数存放单元的地址)?
2.试编制一程序,实现十个一位十进制数的累加,累加后以未组合形式存放在AH(高位)和AL(低位)中?
3.试编制一程序,计算出从2开始的前50个质数。
4.设有100个学生的成绩存放在RECORD为首地址的字数组之中,试编写一个子程序统计60~69分,70~79分,80~分,90~99分及100分的人数(假设学生的成绩都及格),分别存放到G6,G7,G8,G9和G10单元中。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- banwoyixia.com 版权所有 湘ICP备2023022004号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务