您的当前位置:首页汇编语言B

汇编语言B

2024-02-10 来源:乌哈旅游


一、填空题(每小题3分,共30分)

1.完成将累加器AL清零,并使进位标志CF清零, 可以使用 XOR AL,AL 或SUB AL,AL指令。

2.完成同指令XCHG AX,BX相同功能的指令序列可以用:

MOV CX,AX MOV AX,BX MOV BX,CX。

3.表示宏定义结束的命令是 ENDM 。

4.报警中断的中断类型为4AH,它的中断向量在中断向量表中的物理地址是 128H 。

5.指令JMP WORD PTR [BX][SI]的寻址方式是 段内间接寻址。

6.8086/8088中两个变址寄存器是 SI、DI 。

7.执行下列程序,设(SS)=3000H, 则AL中的数据所在的内存地址(物理地址)是31FFEH _。

MOV SP, 2000H MOV AX, 1234H

PUSH AX

8.完成无符号数乘2的逻辑移位指令是 SHL 。

9.若用数据定义伪指令定义数据:BUF DB 4 DUP(0,2 DUP(1,0)), 问:定义后,存储单元中有数据0100H的字单元个数是 8 。

10. 十进制数- 115用16位补码表示是 FF8DH 。

二、简答题(每小题6分,共24分)

3. 简述子程序与宏定义区别

使用子程序,需要为转子及返回、保存及恢复寄存器以及参数的传递等增加程序的额外开销;子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间;(3分)而宏调用则是在汇编期间展开的,每调用一次就把宏定义体展开一次,因而它占用的空间与调用次数有关,次数越多多则占用空间就越大(3分)。

三、程序分析题(每小题6分,共24分)

1. 设寄存器AL,BL,,CL中内容为69H

XOR AL,0FH AND BL,0FH

OR CL, 0FH

执行上述指令序列后,AL=( 66H )、BL=( 06H )、CL=( 6FH )

2、现有如下程序段:

MOV AL,41H MOV AH,02H

ADD AL,20H INT 21H

MOV DL,AL ┅

请回答:(1)该程序完成的功能是什么? (2)程序执行后,(AL)= ?

将大写的A转换成小写的a(3分) AL=61H(3分)

3.现有程序段如下:

DATA SEGMENT ARRAY DW 5,67,8

ORG 0020H BASUB EQU ARRAY - BUFF

BUFF DB 1,3,5,7,‘2468’, DATA ENDS

请回答:(1)该数据段已占有的存储字节数是多少?

(2)BASUB的值是多少?

1)共占用14个字节(3分) (2)BASUB=8(3分)

4.现有程序段如下:

DATA SEGMENT DA1 DB 64H DA2 DB 04H DA3 DW ? DATA ENDS ………

MOV BL,DA1 MOV CL,DA2 CMP CL,BL AV1:XOR AX,AX

MOV CH,0

AV2:

ADD AL,BL

ADC AH,0

LOOP AV2

MOV DA3,AX

………

JBE AV1

XCHG CL,BL

请回答:(1)该程序完成的功能是什么?

(2)程序执行后,(AX)=

4.(1)完成两个无符号数的相乘(3分)(2)AX=0190H或400(3分)

四、编制程序题(10分)

编写程序段计算:(Z-X*Y+540)/X,其中X、Y、Z、均为16位带符号数,已分别装入X、Y、Z、单元中,要求上式计算结果的商存入AX、余数存入DX寄存器.(勿须写出源程序格式,只须写出指令序列).

MOV AX,X

IMUL Y MOV CX,AX

MOV BX,DX

MOV AX,Z

CWD

SUB CX,AX

SBB BX,DX

ADD CX,540

ADC BX,0

MOV AX,CX

MOV DX,BX:IDIV X (10分)

五、编制程序题(6分)

试编写宏定义,找出3个字节数据(DA1、DA2、DA3)中的最大数,结果存放到MAX单元

SEND MACRO DA1, DA2,DA3,MAX

LOCAL NEXT, EXIT

MOV AL,DA1

MOV BL,DA2

MOV CL,DA3

CMP AL,BL

JGE DON1

MOV AL,BL

DON1:CMP AL, CL

JGE DON2

MOV AL,CL

DON1:MOV MAX,AL

ENDM(6分)

六、编制程序题(6分)

在X单元中存放着一个字数据,试编制一个完整的程序统计X中1的个数,存入CNT单元中并在屏幕上显示出来。

DATA SEGMENT

X DB 12H

CNT DB ?

DATA ENDS CODE SEGMENT MAIN PROC FAR

ASSUME CS:CODE,DS:DATA START: PUSH DS SUB AX, AX PUAH AX

MOV AX, DATA

MOV DS, AX

MOV CL, 0

MOV AL, X

REPEAT:TEST AL, 0FFH JZ EXIT JNS SHIFT

INC CL

SHIFT: SHL AL, 1

JMP REPEAT

EXIT: MOV CNT, CL

ADD CL,30H

MOV DL,CL

MOV AH,02H

INT 21H

RET

MAIN ENDP

CODE ENDS

END START

6分)

因篇幅问题不能全部显示,请点此查看更多更全内容