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

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

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

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

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

汇编复习题仅供参考1

汇编语言复习题

一、选择题

1.下面关于汇编语言源程序的说法中正确的是(B)

A.必须要有堆栈段B.一个程序可以有多个代码段

C.必须要有数据段D.只能有一个数据段

2.在汇编语言程序开发中,一般要按顺序经过(B)过程。

a.用文字编辑程序编写源程序

b.用连接程序LINK连接程序.ASM—>.OBJ-->.EXE

c.用MASM宏汇编程序,编译成目标程序

d.用DEBUG程序调试程序

A.abcdB.acbdC.adcbD.adbc

3.汇编语言编译程序MASM.EXE(编译器)编译的对象是(C)文件。

A..EXE  B..OBJ  C..ASM D..DOC

4.汇编语言源程序经过MASM汇编后产生(C)文件。

A..EXE  B..ASM  C..OBJ D..DOC

5.DEBUG调试程序时查看内存单元内容的命令是(A)

A.D  B.RC.A  D.E

6.DEBUG调试程序时查看寄存器内容的命令是(B)

A.D  B.RC.U  D.A

7.8086CPU地址总线宽度为(C)位。

A、8B、16C、20D、32

8.8086CPU数据总线宽度为(B)位。

A、8B、16C、20D、32

9.1个CPU的寻址能力为32KB,那么它的地址总线宽度为(B)。

A、13B、15C、18D、32k

10.汇编语言源程序中定义段的伪指令是(D)

A.REPT…ENDMB.PROC…ENDP

C.MACRO…ENDMD.SEGMENT…ENDS

11.汇编语言源程序中定义宏的伪指令是(C)

A.REPT…ENDMB.PROC…ENDP

C.MACRO…ENDMD.SEGMENT…ENDS

12..对于下列程序段:

AGAIN:

MOVAL,[SI]

MOVES:

[DI],AL

INCSI

INCDI

LOOPAGAIN把[sI]中的内容传送给ES:

[DI]

也可用(A)指令完成同样的功能。

A.REPMOVSB串传送B.REPLODSB从串取

C.REPSTOSB存入串D.REPESCASB串扫描

13.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是(C)

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

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

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

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指令完全等效的指令是(   B    )。

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.寄存器寻址

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

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];物理地址PA=      

(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.阅读下面程序段,回答问题。

A DB 0F8H

  BDB 3 DUP(?

  ┇

LEA DI,B

  MOV CX,3

  MOV 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

LOP:

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

  LOOP 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

INT21H

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

INT21H

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;显示十位数

MOVBYTEPTRES:

[160*12+40*2+2],AL;显示个位数

ret;子程序结束,返回主程序

 

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

……

MOVBX,OFFSETSUM

PUSHBX

MOVBX,OFFSETARRAY

PUSHBX

MOVBX,OFFSETCOUNT

PUSHBX

CALLSUMPRO;调用子程序计算

…….

SUMPROPROCNEAR

PUSHAX

PUSHCX

PUSHSI

PUSHDI

PUSHBP

MOVBP,SP

MOVSI,[BP+14      ]

MOVDI,[BP+    12]

MOVCX,[DI]

MOVDI,[BP+  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

movcx,10

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列的屏面清除。

movah,06h

moval,0

movbh,70h

movch,12

movcl,0

movdh,22

movdl,79

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

movcx,10

leasi,GRA

next:

moval,[si]

cbw

adddx,ax

incsi

loopnext

movax,dx

movbl,10

divbl

mov[avg],al

movah,4ch

int21h

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

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

DSGSEGMENT

STRDB“BbcDeFgHIj”

DSGENDS

movax,DSG

movds,ax

leasi,STR

next:

moval,[si]

cmpal,'Z'

jbeexit

subal,20h

mov[si],al

exit:

incsi

loopnext

movah,4ch

int21h

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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