汇编复习题 仅供参考1Word下载.docx

上传人:b****6 文档编号:19966219 上传时间:2023-01-13 格式:DOCX 页数:15 大小:54.79KB
下载 相关 举报
汇编复习题 仅供参考1Word下载.docx_第1页
第1页 / 共15页
汇编复习题 仅供参考1Word下载.docx_第2页
第2页 / 共15页
汇编复习题 仅供参考1Word下载.docx_第3页
第3页 / 共15页
汇编复习题 仅供参考1Word下载.docx_第4页
第4页 / 共15页
汇编复习题 仅供参考1Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

汇编复习题 仅供参考1Word下载.docx

《汇编复习题 仅供参考1Word下载.docx》由会员分享,可在线阅读,更多相关《汇编复习题 仅供参考1Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

汇编复习题 仅供参考1Word下载.docx

AX”后,SP的值是(C)

A.1998HB.1FFFH C.1FFEHD.2002H

14.设SP初值为2000H,执行指令“POPBX”后,SP的值是(D)

15.执行下列指令序列后,正确的结果是(A)

  MOV 

AL,81Hal=81h

  ADD 

AL,ALal=81h+81h=02h,cf=1

  ADC 

AL,AL02h+02h+cf=05h

A.AL=05H  B.AL=204H  C.AL=04H  D.AL=205H

16.下列指令被编译时会出错的是(D)mul的操作数不能为立即数

A.MULBXB.MULCLC.MULDAT1D.MUL56

17.与MOV 

BX,OFFSETVAR指令完全等效的指令是( 

 

)。

A、MOV 

BX,VARB、LEA 

BX,VAR

C、LDS 

BX,VARD、MOVBX,SEGVAR

18.指令指针寄存器是(C)

A.BPB.SPC.IPD.PSW

19.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B)

A.AX,BX,CX,DXB.BX,BP,SI,DI

C.SP,IP,BP,DXD.CS,DS,ES,SS

20.下列数据段中:

BUF1DB3DUP(0,2DUP(1,2),3)

COUNTEQU$-BUF1

符号COUNT等价的值是(B)

A.6B.18C.16D.8

占用了18个字节,其中2DUP(1,2)占用了2*2=4个字节,总共占用了

3*6=18个字节

21.设数据段中已有:

DA1DB12H,34H

DA2DW56H,78H

下面有语法错误的语句是(C)

A.MOVAL,DA1B.MOVWORDPTRDA1,AX

C.MOVDA1+1,AXD.MOVBYTEPTRDA2+1,AL

22.指令MOVBYTEPTR[BX+SI],00H中目的操作数的寻址方式是(d)

A.立即寻址B.寄存器寻址

C.寄存器间接寻址D.基址变址寻址

23.指令MOVES:

[BX],AL中目的操作数的寻址方式是(c)

A.直接寻址B.寄存器寻址

24.条件转移指令JB产生程序转移的条件是(A)

A.CF=1  B.CF=0  

C.CF=1和ZF=1  D.CF=1和ZF=0

25、若执行SALSI,CL后能将SI的内容乘以8,则(CL)=(B)

A、2B、3C、4D、8

26.编辑汇编语言源程序时,对于注释语句必须用英文输入法中的(B)来标示。

A.:

B.;

C.,D..

27.将AL高4位清0,应执行的指令是 

( 

 

B)

A.ANDAL,0F0H 

B.ANDAL,0FH 

C.ORAL,0FH 

D.TESTAL,0FH

28.若程序中定义了26B的数据段data,那么程序载入内存,该data段实际占用的内存空间是(C)。

16的倍数

A、16BB、26BC、32BD、64KB

29.在8086CPU系统中一个段的容量最小为(A)。

A、16BB、64KBC、512KBD、1KB

有数据时最小为16B,没数据时最小为0

30.下列地址信息与0020H:

03EFH确定的内存地址不同的是(B)。

A、5EFHB、203H:

00EFH

C、005EH:

000FHD、0002H:

05CFH

ACD对应的物理地址都是5EFH

二、填空题

1、完成下列数制转换:

11101010B=D=H

2.在存储器分段管理中,物理地址需要____2_______个16位寄存器来存储。

3.对于指令FEESDW100DUP(0)

LENGTH=100,SIZE=200B。

4.设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?

  

(1)JMP 

BX;

IP=______1256h_____________

  

(2)JMP 

TABLE[BX];

IP________3280H_____________

5.设(DS)=2000H,有下列数据段,请用十六进制写出下列各字节单元的内容:

ORG2100H想知道org是什么?

XX一下

TABLEDB10,3*5,10H占三个字节

ADDRESSDDTABLEDD占四个字节,地址为2000h:

2100h

ARRAYDW2DUP(3827H,?

)占4个字,8个字节

(1)(2100H)=____10_________ 

(2)(2103H)= 

_____00_________ 

(3)(2106H)=____20H__________ 

(4)(210CH)= 

_____38H_________ 

这里的DS=14F8H,(2106H)=14

题目DS=2000H,所以(2106H)=20

6.已知X=-38D,Y=-64D,则[X-Y]补=____1AH_______(结果用十六进制表示)

7、设(DS)=2000H,(ES)=3000H,(SS)=4000H,(BX)=1000H,(BP)=1000H,(SI)=0001H,(DI)=0002H,(21000H)=1234H,(21002H)=5678H,(31000H)=9ABCH,(31002H)=0DEF0H,(41000H)=3456H,(41002H)=789AH

计算下列各指令中源操作数的物理地址,并指出指令执行后AX寄存器的内容。

(1)MOVAX,ES:

[1000H];

物理地址PA= 

(2)MOVAX,[BP];

(3)MOVAX,[BX][SI]

物理地址PA= 

(AX)= 

8.计算机中8位二进制有符号数(含一位符号位)的补码表示范围是—128~127

9.若机器进行有符号数运算,执行指令:

MOVAL,0F0H

ADDAL,78H

则ADD指令执行后:

(CF)=1,(OF)=0

想知道结果也可以调试一下看看

10.8086CPU允许有256个中断源,其中定时器中断的中断类型号为08H,在中断向量表中N类型对应中断向量的地址为N×

4。

三、判断下列指令的正误

1、MULAL,BL(N)只有一个操作数

2、MOVCS,BX(n)

3、PUSHAL(N)PUSH和POP操作都是以字为单位

4、SHLAX,CX(N)以为次数要放在cl中

5、MOVAH,BYTEPTR[SI][DI](N)[SI][DI]两个都为变址寄存器

6、OUT03FCH,AX(N)

03FCH超过了255,必须用间接寻址,这里间接寻址的寄存器要用DX,

Movdx,03fch

Outdx,ax

7、SUBAX,[BX](y)

8、ANDAL,0FH(y)

9、MOV[SI],[DI](n)两个操作数不能同时为存储器

10、MOV[BX],0FFH(n)

11、MUL0AH(n)

12、CALLFARPTRS(y)

13、ADDDS,AX(n)段寄存器不可以用在算术指令中

14、ADDAL,100H(n)类型不一致

15、MOV[BX],BX(y)

16、INT1000H(n)

17、JMPSHORTPTRS(n)

18、0RAL,0FFFH(n)

19、CALLBX(y)

20、IN03H,AX(n)

四、程序分析题

1.阅读下面程序段,回答问题。

DB 

0F8H

  BDB 

DUP(?

  ┇

LEA 

DI,B

CX,3

AL,A 

LOP:

SAR 

AL,1

  MOV 

[DI],AL

  INC 

DI

  LOOP 

LOP

上述程序段运行后,从B单元开始依次存放的数据是多少?

FC FEFF

F8H=11111000

右移一位变为11111100=FC

再右移一位变为11111110=FE

再右移一位变为11111111=FF

调试结果:

2、分析下面程序段的功能

……

DATASEGMENT

S9DB0,1,2,3,4,5,6,7,8,9

DATAENDS

LEASI,S9

LEADI,S9+1

MOVCX,5

MOVAL,[SI]

XCHGAL,[DI]

MOV[SI],AL

ADDSI,2

ADDDI,2

LOOPLOP

上述程序段运行后,S9开始的10个字节存储单元内容是什么?

01000302050407060908

3、已知BUF开始的数据区中存放有10个大、小写字母,分析下面程序段完成的功能是什么?

  ……

MOV 

CX,10

  LEA 

BX,BUF

 K2:

MOV 

AL,[BX]

  CMP 

AL,‘Z’

  JBE 

K1

  SUB 

AL,20H(20H=32,大小写字母相差32)

  MOV 

[BX],AL

K1:

INC 

BX

K2

  ……

实现功能:

把小写字母变为大写字母

 4.分析下面程序段完成的功能是什么?

……;

(DX:

AX)联合存放了一个32位数据

MOVCL,4

SHLDX,CLDL=****0000

MOVBL,AH

SHLAX,CLAL=****0000

SHRBL,CLBL即AH的内容,AH=0000****,四个星号为原来AX的高四位

ORDL,BL

功能:

把ax的高四位写入到dx的低四位

5、分析下面程序段完成的功能是什么?

……

MOVCX,10

LOP1:

MOVAH,1

INT21H

PUSHAX

LOOPLOP1

MOVCX,10

LOP2:

POPDX

MOVAH,2

LOOPLOP2

把输入的字符逆向输出

6、以下是二进制数(bx)到十六进制数转换并显示程序的源文件BINIHEX.ASM,阅读并完成该程序。

START:

MOVCH,4bx为16位,bx要循环4次,用ch来计次数

ROTATE:

movcl,4

ROLBX,CL

MOVAL,BLbx循环左移后,原来的高四位变为低四位,把bl的值送给al,以免后面的操作影响bx的值

Andal,0fh与0fh相与,只保留低四位

ADDAL,30H转换为ASII码

CMPAL,3AHASII码大于3Ah则al的值大于9,若小于3Ah,直接输出

JLPRINTIT

Addal,07hASII码大于3Ah,A的ASII码为41h,所以要加上7,可以输出相应的ABCD....

PRINTIT:

MOVDL,AL

Movah,02h

Decch

JNZROTATEch为零时跳出循环

MOVAH,4CH

INT21H

7、以下是子程序BCDIASC,请阅读程序并完成填空。

;

将十进制的两位数的BCD码转换为ASCII码并在屏幕中间显示.

参数:

(AL)=十进制的两位数的BCD码,无出口参数

BCDIASC:

MOVAH,AL

MOVCL,4

shrah,cl;

将AH的高4位移至低4位

Andal,0fh;

保留AL的低4位

ADDAH,30H;

转变为ASCII码

Addal,30h

MOVBX,0B800H

Moves,bx

MOVBYTEPTRES:

[160*12+40*2],AH;

显示十位数

[160*12+40*2+2],AL;

显示个位数

ret;

子程序结束,返回主程序

8.下面程序通过子程序调用,将数据段中字数组ARRAY的COUNT个元素求和,并将结果送SUM单元(COUNT、SUM都是字单元),分析这段程序后补充完整程序中的空格部分。

MOVBX,OFFSETSUM

PUSHBX

MOVBX,OFFSETARRAY

MOVBX,OFFSETCOUNT

CALLSUMPRO;

调用子程序计算

…….

SUMPROPROCNEAR

PUSHAX

PUSHCX

PUSHSI

PUSHDI

PUSHBP

MOVBP,SP

MOVSI,[BP+14 

]

MOVDI,[BP+ 

12]

MOVCX,[DI]

16] 

XORAX,AX

NEXT:

ADDAX,[SI]

LOOPNEXT

MOV[ 

DI],AX

POP 

BP 

POPDI

POPSI

POPCX

POPAX

RET

SUMPROENDP

请画出用堆栈传送参数地址时,堆栈最满时的状态。

五、编程题

1、从BUF1单元开始存放有10个字节的字符串,使用串传送指令编写指令序列将BUF1中的数据复制到BUF2开始的10个字节单元。

leasi,BUF1;

si的段地址为ds

leadi,BUF2;

di的段地址为es

movcx,10

cld

repmovsb

2、编写指令序列,完成用空格符(20H)清除某一字符区的工作,字符区首地址为ARRAY,其长度为COUNT,ARRAY和COUNT均为字节存储单元。

leasi,ARRAY

moval,20h

cld

repstosb

3.编写一个显示字符串的宏定义PRINT,字符串以”$”作为结束符号,字符串首地址STRADDR为变元。

PRINTmacroSTRADDR

leadx,STRADDR

movah,09h

int21h

endm

4、编写子程序CLEAR实现清除屏幕的功能。

(课件第九章有)

movah,06h

moval,0

movbh,70h

movch,0

movcl,0

movdh,24

movdl,79

int10h

5、编写指令把12行0列到22行79列的屏面清除。

movch,12

movdh,22

int10h

6.写出采用位触发方式控制发声的子程序SOUND.

BX:

发声频率,控制脉宽

CX:

发声时间,控制音长。

Movbx,100

Inal,61h

Andal,11111100b

sound:

xoral,2

Out61h,al

Movcx,140h

Wait:

loopwait

Decbx

Jnzsound

7、已知在内存数据段中GRA开始单元连续存放着10个学生的成绩,试编程实现以下功能:

计算平均成绩(只取整数部分)存放在内存单元AVG中。

DSGSEGMENT

GRADB90,58,70,80,68,98,66,83,96,72

AVGDB?

DSGENDS

movax,DSG

movds,ax

movdx,0

leasi,GRA

next:

moval,[si]

cbw

adddx,ax

incsi

loopnext

movax,dx

movbl,10

divbl

mov[avg],al

movah,4ch

8、已知在内存数据段中STR开始单元连续存放着10个大小写字母,试编程实现以下功能:

将10个字母中的小写字母全部转换为大写字母。

STRDB“BbcDeFgHIj”

leasi,STR

cmpal,'

Z'

jbeexit

subal,20h

mov[si],al

exit:

incsi

int21h

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1