汇编常考试题(含有详解) 下载本文

NUM2=NUM1+10H DA1 DB 'COMPUTER' DB 0AH,0DH COUNT EQU $-DA1

DA2 DW 'CO','MP','UT','ER' DATA ENDS 试回答:(1)DA1的偏移地址是:______20H _____________。

(2)COUNT的值是:__________10_________。

(3)DA2+5字节单元的内容是:______’U’_____________。

29、设DS=3A00H,ES=4A00H,在段地址:偏移地址=4A00H:9000H 字单元中有数据3C50H。请用一条指令将数据3C50H装入AX寄存器。(不得使用立即数)

MOV AX,ES:[9000H]

30、设BX=0FFFFH,DI=20H,DS=2000H,CL=8,(20020H)=4567H,下列各条指令分别执行后BX中的内容各为多少?

A. ROL BX,CL ;BX=__0FFFFH ____ B. MOV BX,[DI] ;BX=___4567H ___ 31、DAT1 DB 1,2,3,4 DAT2 DW 3412H,5678H ┇

MOV AX,DAT1+1 ;将DAT1+1字单元内容送入AX中 MOV BL,DAT2+1 ;将DAT2+1字节单元内容送入BL中

已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改正)。

MOV AX,WORD PTR DAT1+1 MOV BL,BYTE PTR DAT2+1

32、DA1 DB 20H DUP(?)

DA2 DW 10H,45H,7856H

请用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。

MOV CX,LENGTH DA1 MOV CX,DA2-DA1

33、用三种不同方法实现在字存储单元DB1中存储2000H。 (1)DB1 DW 2000H (2)CUNT EQU 2000H DB1 DW CUNT (3)DB1 DW ?

MOV DB1,2000H 34、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。

MOV AL,[BP+20H]的物理地址是 12488H 。 MOV [BX+DI-80H],AL的物理地址是 232D7H 。

MOV BL,ES:[SI+40H]的物理地址是 31040H 。

21

四、程序分析题

1、XOR AL,AL MOV AH,AL ADD AH,9 JZ NEXT

XCHG AH,AL JMP K1

NEXT:MOV AH,0FFH K1:??

上述程序运行后,AH= 0 ,AL= 9 。 2、XOR AL,AL

INC AL NEG AL INC AL

MOV BL,7FH ADC AL,BL

上述程序段运行后,AL= 80H ,CF= 0 。 3、已知 AX=1234H MOV BX,AX NEG(求补运算) BX ADD AX,BX

执行上述三条指令后,AX= 0 ,BX= 0EDCCH 。 4、BUF1 DB 41H,42H,43H,44H,45H,46H BUF2 DB 6 DUP(?) ?

MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,6 LOP:MOV AL,[SI] SUB AL,7 AND AL,0FH MOV [DI],AL INC SI INC DI LOOP LOP

试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?

0AH,0BH,0CH,0DH,0EH,0FH

(2)在程序功能不变的情况下,AND AL,0FH指令可否用SUB AL,30H指令替代。

功能不变

5、BUFF DB ‘ABD $ QC% $ A??CYZ’

CONT EQU $ - BUFF ? CLD

LEA DI,BUFF

22

MOV CX,CONT MOV AL,’$’ XOR DX,DX

NEXT:REPNZ SCASB

CMP CX,0 JZ K1 INC DX JMP NEXT K1: ?

上述程序段运行后,DX中的值表示的意义是什么?

DX中存放的是字符串中’$’字符的个数。

6、DA1 DW 1F28H DA2 DB ? ┇

XOR BL,BL MOV AX, DA1 LOP:AND AX,AX JZ KK

SHL AX,1 JNC LOP ADD BL,1 JMP LOP

KK:MOV DA2,BL

就是AX每次逻辑左移一位并且那一位作为CF CF为一就计数加一 功能就是看1F28的二进制有几个1

试问:A.程序段执行后, DA2字节单元内容是什么?

BL=7

B.在程序段功能不变情况下,是否可用SHR指令代替SHL指令? 本程序段是可以的 7、DA1 DB 87H DA2 DB ┇

MOV AH,0 MOV AL,DA1 MOV CL,4 SHR AL,CL MOV DL,10 MUL DL

MOV BL,DA1 AND BL,0FH ADD AL,BL MOV DA2,AL

试回答:A.程序段执行后,(DA2)=_87_____;

23

B.在程序段功能不变的情况下,是否可以用指令SAR替代指令SHR?

不可以。

8、MOV AL,BL NOT AL

XOR AL,BL (相同取零 不同取一) OR BL,AL

程序段执行后,AL=_0FFH______,BL=_0FFH______。 9、STC

MOV CX,0403H MOV AX,0A433H SAR AX,CL XCHG CH,CL SHL AX,CL

程序段执行后,AX=_4860H _____,CF=__1____。 10、BYTE1 DB XX ;任意数 BYATE2 EQU 0FEH ┇

MOV DL,BYTE1 OR DL,BYTE2

程序段执行后,DL=__0FFH ____或__0FEH ____。

11、DA_B DB 0CH,9,8,0FH,0EH,0AH,2,3,7,4 ┇

XOR AX,AX XOR CL,CL XOR BX,BX

LOP:TEST DA_B[BX],01H (判断奇偶 最后一位是0则为偶 否则为奇)

JE NEXT 最后一位如果是一 相与 结果为1 je是为零才跳转的 所以不转 顺序执行 ADD AL,DA_B[BX] INC AH

NEXT:INC BX INC CL

CMP CL,10 JNE LOP

AH是放奇数的个数 AL是放所有奇数的和

上述程序段运行结束后,AH=__4____,AL=__34____。

如果把“JE NEXT指令改为“JNE NEXT“指令,那么AH=_6_____,AL=____50__。 12、VAR_B DB 10 DUP(3,5,7,9) ┇

LEA BX,VAR_B MOV CX,10 XOR AX,AX

LOP:ADD AL,[BX] CMP AL,10 JB NEXT

24