您的当前位置:首页安徽大学2014年汇编复习题

安徽大学2014年汇编复习题

2023-06-01 来源:乌哈旅游


一.填空题

1.设段地址DS=2000H, 指令MOV [600H],AX的目的操作数物理地址是(20600H),如果段地址是2020H,指令MOV [400H],AX的目的操作数物理地址是(20600H)。

2.汇编源程序中出现的数值,默认采用(十进制);汇编程序在DEBUG调试状态下出现的数值,默认采用(十六进制)。

3.循环指令LOOP OPR执行的操作是(CX=CX-1若CX≠0跳转到标号OPR处循环执行,若CX=0则执行LOOP的下一条指令),LOOPNE指令循环得以继续的条件是(ZF=0且CX≠0)。

4.带符号数比较大小,当AX> BX时程序转向标号L1,若前导指令为CMP AX,BX,后续指令应为(JG L1),若视为二个无符号数比较大小,后续指令应为(JA L1)。

5.16位加法6FA7+9F20H=(0EC7H),标志位SF,ZF,CF,OF的值分别为(0,0,1,0)。

6.设SS=2000H,SP=0100H,执行 CALL FAR PTR SUBPRO 后,SP=(00FCH)。

7.可以用一条指令(XOR BL,0FH)使BL中的低四位变反,高四位不变。

8.宏指令与子程序相比,子程序调用的执行速度比宏指令的(慢),在多次调用时,宏指令调用的目标程序长度比子程序调用的(长)。

9.执行DIV BX指令后,(DX)寄存器中存放余数,(AX)寄存器中存放商。

第 1 页 共 14 页

10.在串操作中,如果地址变化是自动增量,则应将DF标志位设置为(0),如果地址变化是自动减量,则应将DF标志位设置为(1)。

二.简答题

1.请指出下列各条指令的源操作数的寻址方式是什么?

(1) MOV AX,53H 立即寻址方式

(2) TEST AL,[BP] 寄存器间接寻址方式

(3) MOV BX,ARRY 直接寻址方式

(4) CMP DX,CX 寄存器寻址方式

(5) LEA AX,-32H[BX][DI] 相对基址变址寻址方式

(6) ADC AH,ARRY[SI] 寄存器相对寻址方式

(7) SUB AX,[BX+SI] 基址变址寻址方式

2.分析以下指令是否有错,请指出错误原因。

(1) MOV DL,AX 两个操作数长度不一致

(2) MOV [BX],9

常数无类型,[BX]没有说明是字节单元还是字单元

第 2 页 共 14 页

(3) MOV BX,[DX] 寄存器间接寻址只允许BX、BP、SI和DI

(4) MOV CS,BX 代码段寄存器不能赋值

(5) MOV DS,DATA 段寄存器不接受符号地址

(6) ADD AX,[SI+DI] 变址寄存器只能使用一个

(7) SUB [BX],[SI] SUB指令的两个操作数不能同为内存单元

(8) MUL BX,CX 乘法指令格式不对,MUL后面只能有一个操作数

3.设 DS=2000H, BX=0100H, SI=0002H, (20100H)=12H, (20101H)=34H,(20102H)= 56H, (20103H)= 78H, (21200H)= 2AH, (21201H)= 4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器中的内容是多少?

(1)MOV AX,1200H (AX)=1200H

(2)MOV AX,BX (AX)=0100H

(3)MOV AX,[1200H] (AX)=4C2AH

(4)MOV AX,[BX] (AX)=3412H

(5)MOV AX,[BX+1100H] (AX)=4C2AH

第 3 页 共 14 页

(6)MOV AX,[BX+SI] (AX)=7856H

(7)MOV AX,[BX+SI+1100H] (AX)=65B7H

4.用十六进制按字节标出以上数据在内存中的存放,并回答寄存器的值。

课本P103习题5.1

ORG 0

ARRAY LABEL BYTE

DA1 DW 2,9,14,3,315H,-6

DA2 DB 7,‘ABCDEDFG’

LEN = $-DA2

ORG 100H

DA3 DW DA4

DA4 DB 4 DUP(2 DUP(1,2,3),4)

。。。。。。

第 4 页 共 14 页

MOV AL,ARRAY+2 AL=( )H

ADD AL,DA2+1 AL=( )H

MOV AX,DA2-DA1 AX=( )H

MOV BL,LEN MOV AX,DA3 MOV BX, TYPE DA4 MOV BX, OFFSET DA4 MOV CX, SIZE DA4 MOV DX, LENGTH DA4 MOV BX, WORD PTR DA4 MOV BL, LEN AND 0FH MOV BL, LEN GT 5 MOV AX, LEN MOD 5 ( AX=( BX=( BX=( CX=( DX=( BX=( BL=( BL=( AX=(第 5 页 )H

)H

)H

)H

)H

)H

)H

)H

)H

)H

共 14 页 BL=

5.MOV AX,99H

MOV BL,88H

ADD AL,BL

JNC LP1

JO LP2

JMP LP3

第 6 页 共 14 页

程序段执行后,AX=(0021)H,CF=(1),OF=(1),转向标号(LP2)。

6.现有程序段如下:

MOV BL,AL

MOV CL,4

SHR BL,CL

MOV A,BL

AND AL,0FH

MOV B,AL

请回答:(1) 该程序段完成的功能是(将AL高4位放在A中,将AL低4位放到B中)。

(2) 如果AL的初值为56H,则执行完该程序段后,A=(5), B=(6)。

三、程序实验题

用DEBUG调入PROG.EXE后,若程序列出如下:

1234:0100 MOV BX,[4000]

第 7 页 共 14 页

1234:0104 MOV AX,[BP]

1234:0106 MOV AH,1

1234:0108 INT 21

1234:010A MOV DL,AL

1234:010C MOV AH,2

1234:010E INT 21

1234:0110 RET

用DEBUG调入PROG.EXE后,列出上面程序的DEBUG命令是(-U)。

寄存器CS的值为(1234H)。

如果要修改寄存器BX为1200H,应键入DEBUG命令(-R BX回车然后输入1200再回车)。

若要修改第二条指令中的BP为BX,应键入DEBUG命令(-A0104回车然后输入MOV AX,[BX]再回车)。

若要查看DS:[4000]中的数据,应键入DEBUG命令(-D DS:4000)。

如果从头运行程序使其停在RET指令处,应键入DEBUG命令(G=100 110)。

第 8 页 共 14 页

如果执行DEBUG命令T=100后,寄存器IP=(0104H)。

如果执行DEBUG命令T=108后,寄存器 IP=(21H中断入口地址)。

从偏移地址为0106H处开始程序功能是(从键盘输入一个字符并将该字符显示输出)。

四、程序设计题

1.编程实现计算下式:(X,Y均为数据段中的字节变量)。

Y=X ;X>=0时

Y=|X| ;X<0时

DATA SEGMENT

X DB 0FFH

Y DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

第 9 页 共 14 页

START:

MOV AX,DATA

MOV DS,AX

MOV AL,X

TEST AL,80H

JZ S1

NOT AL

INC AL

S1: MOV Y,AL MOV AH,4CH

INT 21H

CODE ENDS

END START

第 10 页共 14 页

2.编写程序,从键盘输入一个字符串到BUFF缓冲区(缓冲区长度小于10),再输入一个字符到AL,在BUFF中查找是否存在该字符,如果找到,在屏幕上显示首次发现的字符位置,否则输出“NOT FOUND”。

DATA SEGMENT

BUFF DB 10

NUMB DB ?

ARRY DB 10 DUP(?)

MESS DB 'NOT FOUND$' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

第 11 页共 14 页

LEA DX,BUFF

MOV AH,10

INT 21H

MOV AH,2

MOV DL,13

INT 21H

MOV DL,10

INT 21H

MOV AH,1

INT 21H

MOV CL,NUMB

MOV CH,0

MOV BX,CX

第 12 页共 14 页

MOV SI,0

S: CMP ARRY[SI],AL

JZ EXIT

INC SI

LOOP S

JMP NO

EXIT:

DEC CX

SUB BX,CX

ADD BL,30H

MOV DL,BL

MOV AH,2

INT 21H

第 13 页共 14 页

JMP OUTP

NO: LEA DX,MESS

MOV AH,9

INT 21H

OUTP:MOV AH,4CH

INT 21H

CODE ENDS

END START

第 14 页共 14 页

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