汇编习题含答案汇编.docx

上传人:b****8 文档编号:30543927 上传时间:2023-08-16 格式:DOCX 页数:19 大小:22.56KB
下载 相关 举报
汇编习题含答案汇编.docx_第1页
第1页 / 共19页
汇编习题含答案汇编.docx_第2页
第2页 / 共19页
汇编习题含答案汇编.docx_第3页
第3页 / 共19页
汇编习题含答案汇编.docx_第4页
第4页 / 共19页
汇编习题含答案汇编.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

汇编习题含答案汇编.docx

《汇编习题含答案汇编.docx》由会员分享,可在线阅读,更多相关《汇编习题含答案汇编.docx(19页珍藏版)》请在冰豆网上搜索。

汇编习题含答案汇编.docx

汇编习题含答案汇编

第一章基本知识

一、单项选择题

1.若十进制数为132.75,则其十六进制数为(B)

A.21.3B.84.C

C.4.6D.6

2.若[X]补=11111,则其十进制真值为(C)

A.-31B.-15

C.-1D.31

3.已知X=78,Y=-83则[X+Y]补=(C)

A.0F5HB.0A1H

C.0FBHD.65H

4.已知[X]补=98H,则[X]补/2=(A)

A.0CCHB.4CH

C.49HD.31H

二、填空题

1.(35)10=(23)16。

2.(15)10=(1111)2。

3.计算机的存储容量1KB=(1024)Byte。

4.计算机的存储容量1MB=(1024)KB。

5.计算机的存储容量1GB=(1024)MB。

第二章8086计算机组织

一、单项选择题

1.在微机系统中分析并控制指令执行的部件是(C)

A.寄存器B.数据寄存器

C.CPUD.EU

2.在计算机的CPU中执行算术逻辑运算的部件是(A)

A.ALUB.PC

C.ALD.AR

3.能被计算机直接识别的语言是(C)

A.C语言B.汇编语言

C.机器语言D.面向对象语言

4.8086/8088的存储器组织是将存储器划分为段,可作为段的起始地址的是(B)。

A.185A2HB.00020H

B.01004HD.0AB568H

5.堆栈中当前出栈的存储单元地址是(A)

A.SS*10H+SPB.SS*10H+BP

C.SS*10+SPD.SS*10+BP

6.标志寄存器中属于控制标志位的是(B)

A.DF,OF,SFB.DF,IF,TF

C.OF,CF,PFD.AF,OF,SF

7.8086/8088存储器分段,每个段不超过(D)

A.64K个字B.32K个字节

C.1M个字节D.64K个字节

二、填空题

1.假设某个字的值为1234H,其低位字节地址是20H,高位字节地址是21H,那么该字的地址是_______20H_____________。

2.在8086/8088控制寄存器中,_______IP_________寄存器内容始终指向下一条指令的首地址,此时该指令物理地址计算式是_____CS*10H+IP__________________。

3.CPU的标志寄存器中标志位,可以分为两大类,其中一类成为___状态标志位________,另一类称为____控制标志位________标志位。

4.当标志位___CF___=1时候表示无符号数运算产生溢出。

而当标志位__OF______=1是表示带符号位数运算产生溢出。

三.简单题

1.实模式下写出段地址和偏移地址为1234:

2002、1430:

0042、FF00:

0FFF的物理地址。

答:

物理地址=段地址*10H+偏移地址

(1)14342H

(2)14342H

(3)FFFFFH

2.从物理地址为00100H开始到00103H单元中顺序存放的数据为12H,34H,56H,78H。

请画出数据存放示意图,并回答一下为题:

(1)写出地址00101H字节单元的内容。

(2)写出地址00102字单元内容。

答:

00100H

12H

00101H

34H

00102H

45H

00103H

78H

(1)(00101H)字节=34H

(2)(00102H)字=7845H

第三章IBMPC机的寻址方式和指令系统

一、选择题

1.MOVAX,ES:

[1000H]源操作数的寻址方式是(B)

A.立即寻址B.直接寻址

C.变址寻址D.基址寻址

2.MOVAX,ES:

COUNT[DI]源操作数的寻址方式是(C)

A.基址寻址B.立即寻址

C.变址寻址D.基址变址寻址

3.MOVDX,COUNT[BP][DI]的源操作数的寻址方式是(D)

A.变址寻址B.基址寻址

C.直接寻址D.基址变址寻址

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

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

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

5.下列四组寄存器中,属于通用寄存器的是(A)

A.AX,BX,CX,DX

B.SP,BP,IP

C.SI,DI,FLAGS

D.上属三者都是

6.指令指针寄存器是(A)

A.IPB.SP

C.BPDBX

7.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为(B)

A.17500H    B.16500H

C.14500H    D.13500H

8.指令MOVAX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为(C)

A.17400H    B.17000H

C.15400H    D.14500H

9.8086/8088系统中,存储器是分段组织的,存储器物理地址计算式是(B)

A.段地址+偏移地址    B.段地址*10H+偏移地址

C.段地址*16H+偏移地址  D.段地址+10H*偏移地址

10.当程序顺序执行时,每取一条指令语句,IP指针增加的值是(D)。

A.1B.2C.3D.由指令长度决定的

11.下列属于合法的指令是(D)

A.MOVDS,ESB.MOV[SI],[DI]

C.MOVAX,BLD.MOV[DI],BL

12.下列传送指令中有语法错误的是(A)。

A.MOVCS,AXB.MOVDS,AX

C.MOVSS,AXD.MOVES,AX

13.当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是(D)

A.表示结果中含1的个数为偶数

B.表示结果中含1的个数为奇数

C.表示该数为偶数

D.表示结果中低八位含1的个数为偶数

14.下面指令执行后,改变AL寄存器内容的指令是(D)。

A.TESTAL,02HB.ORAL,AL

C.CMPAL,BLD.ANDAL,BL

15.与MOVBX,OFFSETVAR指令完全等效的指令是(D)。

A.MOVBX,VARB.LDSBX,VAR

C.LESBX,VARD.LEABX,VAR

16.将DX的内容除以2,正确的指令是(C)。

A.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,1

17.下列数值表达式和地址表达式中,错误的是(D)。

A.MOVAL,8*14+4B.MOVSI,OFFSETBUF+13

C.MOVCX,NUM2-NUM1D.MOVCX,NUM2+NUM1

18.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(C)。

A.NCCXJZMINUSB.SUBCX,OFFFFHJZMINUS

C.ANDCX,OFFFFHJZMINUSD.XORCX,OFFFFHJZMINUS

19.完成对CL寄存器的内容乘以4的正确操作是(C)

A.ROLCL,1

B.MUL4ROLCL,1

C.SHLCL,1SHLCL,1

D.MOVCL,2SHLCL,CL

20.在下列串操作指令中,同时使用源串和目的串地址指针的指令是(D)

A.STOSWB.LODSWC.SCASWD.CMPSW

21.AL=0AH,下列指令执行后能使AL=05H的是(C)

A.NOTALB.ANDAL,0FH

C.XORAL,0FHD.ORAL,0FH

22.下面指令执行后,改变AL寄存器内容的指令是(D)。

A、TESTAL,02HB、ORAL,AL

C、CMPAL,BLD、ANDAL,BL

23.堆栈指针SP的内容是(B)

A.栈顶单元内容    B.栈顶单元地址

C.栈底单元内容    D.栈底单元地址

24.执行指令PUCHCX后堆栈指针SP自动(C)

A.+1         B.不操作

C.-2         D.-1

25.指令ADDES:

[DI],AX和存放在(B)

A.寄存器     B.附加段

C.堆栈段     D.代码段

26.将DX的内容除以2,正确的指令是(C)。

A.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,1

27.下列数值表达式和地址表达式中,错误的是(D)。

A.MOVAL,8*14+4B.MOVSI,OFFSETBUF+13

C.MOVCX,NUM2-NUM1D.MOVCX,NUM2+NUM1

28.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(C)。

A.INCCXJZMINUSB.SUBCX,OFFFFHJZMINUS

C.ANDCX,OFFFFHJZMINUSD.XORCX,OFFFFHJZMINUS

29.在下列串操作指令中,同时使用源串和目的串地址指针的指令是(D)

A.STOSWB.LODSWC.SCASWD.CMPSW

30.下面指令中,合理而有意义的指令是(D)。

A.REPLODSBB.REPSCASBC.REPCMPSBD.REPMOVSB

二、填空题

1.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,(SI+COUNT)中,源操作数的有效地址EA为___20A8H_____,其物理地址为___11488H_____。

2.如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是____IP____,而后两个字节存放的是____CS____。

3.下列指令属于基址加变址寻址方式的是(MOVDX,DS:

[BP][SI])。

4.在串操作程序中,通常在重复前缀指令REPZ或REPNZ后,选用的串操作指令是___STOS____或___CMP__才有实际意义。

5.如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是____IP____,而后两个字节存放的是____CS____。

6.已知

AX=0FF60H,CF=1

MOVDX,96

XORDH,0FFH

SBBAX,DX

执行上述指令序列后,AX=_________0__________,CF=______0__________。

7.设寄存器AL,BL,CL中内容均为76H,

XORAL,0FH

ANDBL,0FH

ORCL,0FH

执行上述指令序列后,AL=______79H___,BL=__06H___CL=_7FH___。

8.已知

AX=0A33AH,DX=0F0F0H

ANDAH,DL

XORAL,DH

NEGAH

NOTAL

执行上述指令序列后,AH=____60H____,AL=_____35H_。

9.执行下面指令序列后,结果是(AX=0FF82H)。

MOVAL,82H

CBW

10.MOVAH,7896H

ADDAL,AH

上述指令执行后,标志位CF和OF的值是(CF=1,OF=0)。

10.设AL=0B4H,BL=11H,指令“MULBL”和指令“IMULBL”分别执行后OF,CF的值为(OF=1,CF=1)。

三.综合题

1.在debug下设置(SP)=20H,设置AX,BX,CX,DX为不同值,把这四个寄存器内容依次压入堆栈,再从堆栈中依次弹出到SI、DI、BP、BX寄存器。

写出一段程序实现上述操作,并画出每条入栈指令执行后SP和堆栈中数据的变化。

答:

(1)修改(SP):

-rSP

SP****

20

AX,BX,CX,DX相同方式

(2)pushAX

PushBX

PushCX

PushDX

PopBX

PopBP

PopDI

PopSI

2.测试AL寄存器,如果最高位和最低位同时为0,则转L0,如果最高位和最低位只有一个为1,则转L1,如果最高位和最低位同时为1,则转L2,画出流程图,并写出程序段。

答:

参考

ROLAL,1

ANDAL,3

JZL0

SUBAL,3

JZL3

JMPL2

第四章汇编语言程序格式

一.选择题

1.下列叙述正确的是(C)。

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令

2.源程序结束语句为(C)

A.ENDP     B.ENDS  

C.ENDMAIN   D.END

3.SKY:

MOVAL,20H中操作数为(D)

A.MOV     B.SKY  

C.AL或20H   D.AL和20H

4.下列为不合法的标志符的是(B)

A.AXYZ     B.5SKY  

C.@ATT     D.?

ABC

5.下列地址表达式正确的是(C)

A.[BX-SI]   B.[BP-DI]

C.[BX+2]    D.[BP+BX]

6.NEAR标号的类型值为(B)

A.2      B.-1

C.4      D.-2

7.组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是(A)

A.NONE     B.PUBLIC

C.COMMON    D.STACK

8.下面哪一个命令是显示内存单元的内容?

(A)

A.D命令    B.E命令

C.F命令    D.R命令

9.取变量偏移属性的分析运算符是(A)

A.OFFSET    B.TYPE   

C.SIZE     D.SEG

10.分析运算符LENGTH只有用(C)定义的变量才有意义。

A.表达式    B.字符串   

C.DUP     D.疑问号

11.在段定义中,(B)是默认的定位类型

A.PAGE     B.PARA   

C.WORD     D.BYTE

12.定义缓冲区BUF,保留100个字节存储空间的语句是(D)。

A.BUFDB100        B.BUFDW100

C.BUFDW100DUP(?

)   D.BUFDB100DUP(?

13.使计算机执行某种操作的命令是(B)

A.伪指令    B.指令

C.标号     D.助记符

14.使用DOS系统功能调用时,使用的软中断指令是(b)

A.INT21B.INT10H

C.INT16HD.INT21H

二.填空题

1.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(F=1)

2.指令JMPFARPTRDONE属于(段间转移直接寻址)。

3.一个有128个字的数据区,它的起始地址为12ABH:

00ABH,请给出这个数据区最末一个字单元的物理地址是(12C59H)。

4.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(进位值在CF中,校正后根据CF内容再加在AH中)

5.执行后使BX=0的同时也使CF=0,OF=0的指令是(ORBX,BX)

第五章循环与分支程序设计

一、选择题

1.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D)。

A、CMPB、SUBC、ANDD、MOV

2.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是(B)。

A.TESTBL,4FH

JZNEXT

B.XORBL,4FH

JZNEXT

C.ANDBL,4FH

JZNEXT

D.ORBL,4FH

JZNEXT

二、填空题

1.下列程序段将AX中值乘以9,请将程序填写完整

(1)__________

MOVCL,3

(2)____________

POPBX

ADDAX,BX

答:

(1)PUSHAX   

(2)SHLAX,CL

2.

MOVBL,64H

MOVCL,03H

XORAX,AX

AGAIN:

ADDAL,BL

ADCAH,0

DECCL

JNZAGAIN

问:

(1)该程序段完成的功能是:

将AX内容乘3送BX中

(2)AX=___012CH_____。

3.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。

TESTAX,8000H

__JEK1或JZK1_________

MOVPLW,BX

JMPDONE

K1:

__MOVPLW,A_______

DONE:

4.下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。

试把空白处填上适当指令。

___XORAH,AL____

ANDAH,08H

____JEZERO_____

MOVAH,OFFH

JMPNEXT

ZERO:

MOVAH,0

NEXT:

……

5.下列程序段求数组ARRAY的累加和。

请将程序填写完整。

ARYDW45H,68H,…………,0ABC1H,9600H;共10项

COUNTDW10

(1)__________

MOVCX,COUNT

XORAX,AX

AGAIN:

ADDAX,[SI]

ADDSI,2

(2)____________

答:

(1)LEASI,AKY   

(2)LOOPAGAIN

6.以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。

BUFDB5,6,7,58H,62,45H,127,……

COUNTEQU$-BUF

MAXDB?

MONBX,OFFSETBUF

MOVCX,COUNT-1

MOVAL,[BX]

LOP1:

INCBX

____CMPAL,[BX]_________

JAENEXT

MOVAL,[BX]

NEXT:

DECCX

_____JNZLOP1___________

MOVMAX,AL

三、编程题

1.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

答:

BEGIN:

MOVAH,1

INT21H

CMPAL,’a’

JBSTOP

CMPAL,’z’

JASTOP

SUBAL,20H

MOVDL,AL

MOVAH,2

INT21H

JMPBEGIN

STOP:

RET

2.在给定个数的数中寻找最大值,放至指定的存储单元。

参考程序:

  DATA  SEGMENT

  BUFFER DB  2,4,3,6,1,5

  COUNT DW  6

  MAX  DB  ?

  DATA  ENDS

  CODE  SEGMENT

      ASSUMECS:

CODE,DS:

DATA

  START:

 MOVAX,DATA

      MOVDS,AX

      MOVCX,COUNT

      LEABX,BUFFER

      MOVAX,[BX]

      INCBX

      DECCX

  AGAIN:

 CMPAX,[BX]

      JGENEXT

      MOVAX,[BX]

      INCBX

  NEXT:

 INCBX

      LOOPAGAIN

  CODE  ENDS

  END  START

第六章子程序

一.编程题

1.主程序从键盘输入两个4位的十六进制数A和B,用子程序做十六进制计算A+B,并显示计算结果。

参考:

CODESSEGMENT

ASSUMECS:

CODES

START:

movbl,0

movcx,8

loop1:

clc

movah,1h

int21h

cmpal,'0'

jzrotate

stc

rotate:

rclbl,1

deccx

jnzloop1

print:

negbl

movdl,0dh

movah,2h

int21h

movdl,0ah

int21h

movcx,8

clc

loop2:

rclbl,1

jncdis0

movdl,'1'

jmpdisplay

dis0:

movdl,'0'

display:

movah,2h

int21h

deccx

jnzloop2

exit:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

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

当前位置:首页 > 小学教育

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

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