汇编试题.docx

上传人:b****6 文档编号:4724798 上传时间:2022-12-08 格式:DOCX 页数:34 大小:34.17KB
下载 相关 举报
汇编试题.docx_第1页
第1页 / 共34页
汇编试题.docx_第2页
第2页 / 共34页
汇编试题.docx_第3页
第3页 / 共34页
汇编试题.docx_第4页
第4页 / 共34页
汇编试题.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

汇编试题.docx

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

汇编试题.docx

汇编试题

  《汇编语言》自测试题

(1)

一、填空题

  1、请用一条指令实现如下操作:

  

(1)将AX中划‘X’的位清0

    15 5 4  0

  ┏┳┳┳┳┳┳┳┳┳┳━┳━┳┳┳┳┓

  ┃┃┃┃┃┃┃┃┃┃┃X┃X┃┃┃┃┃指令:

__________________

  ┗┻┻┻┻┻┻┻┻┻┻━┻━┻┻┻┻┛ 

  

(2)寄存器的低四位取反:

_________________

  2、三个重复前缀指令为__________________、________________、______________。

  3、DB指令以_______________为单位分配存贮;DD指令以__________为单位分配存贮。

  故如下数据定义:

  V1DB4DUP

(2),2

  COUNTEQU10

  V2DDCOUNTDUP(?

  为变量V1分配_____个字节存贮;为变量V2分配_____个字节存贮。

  4、设(CS)=25FFH,(DS)=2140H,(SS)=2510H,(BP)=02D0H,(SI)=0010H,(DI)=0206H,

  则

(1)指令MOVAX,[BP+SI+2]的源操作数有效地址为_______,物理地址为________

   

(2)指令MOVAX,[DI+100H]的源操作数有效地址为_______,物理地址为________.

  5、8086/8088CPU可访问2个独立的地址空间,一个为存贮器地址空间,其大小为____个字节;另一个为______,其大小为_______字节.

  6、设(AX)=1000H,(BX)=2340H,则在执行了指令CMPAX,BX后,CF标志值为____,ZF标志值为______。

  二、编写功能程序块

  1、将DX:

BX:

AX中的数右移4位。

  2、字变量ADDR的段地址在DS中,将ADDR字单元中1的个数存入CX。

(例如:

[ADDR]=1000000100000100B,则1的个数为3)

  3、设BX寄存器包含两个非组合BCD数,请将非组合BCD数转换成对应的组合BCD数,存入AL寄存器。

  三、简答题

  1、简述汇编语言相对高级语言的优点。

  2、简述8086CPU的中断响应过程。

  四、阅读程序,分析结果

  1、从键盘读入一字符串(长度小于40),将该串反转后,输出显示。

  MAXNOEQU41

  SSEGSEGMENTSTACK

  DW100DUP(?

  SSEGENDS

  DSEGSEGMENT

  MESG1DB'INPUTASTRING:

$'

  MESG2DB'IT'SREVERSEIS:

'

  BUFDBMAXNO,?

MAXNODUP(?

  DSEGENDS

  CSEGSEGMENT

  ASSUMECS:

CSEG,DS:

DSEG

  START:

________________

  MOVDS,AX

  MOVDX,OFFSETMESG1

  MOVAH,9

  INT21H

  MOVDX,OFFSETBUF

  __________________

  INT21H

  XORAX,AX

  __________________;取实际读入字符个数

  LEADI,BUF+2

  MOVSI,DI

  ADDSI,AX

  MOVBYTEPTR[SI],'$'

  DECSI

  CONT:

  CMPDI,SI

  _______________

  MOVAL,[SI]

  XCHGAL,[DI]

  DECSI

  ________________;调整DI

  JMPCONT

  FINISHD:

  LEADX,BUF+2

  MOVAH,9

  INT21H

  MOVAX,4C00H

  INT21H

  CSEGENDS

  ENDSTART

  2、设num1,num2都为字变量,各存贮一个有符号数,请指出下面语句序列的功能

  MOVAX,num1

  XORDX,DX

  ORAX,AX

  JNSSKIP

  MOVDX,OFFFFH

  SKIP:

IDIVnum2

  五、判断正误,若判断为错,请说明理由

  1、MOVDS,0

  2、MOVAX,[SI][DI]

  3、MOVBYTEPTR[BX],10H

  4、每个汇编语言源程序模块都必须以END伪指令结束。

END伪指令用于向汇编程序指示源程序的结束;在需要时,还可以用于程序入口地址。

  5、设AX寄存器中为一个有符号数,用如下语句序列完成:

  CMPAX,0

  JEDONE

  MOVAX,-1

  JLDONE

  MOVAX,1

  DONE:

  附:

99年北京市汇编语言自考上机题:

  要求:

从键盘输入一组四位的十进制数,每组数中间以空格分割,以回车作为输入结束标志,后将这组数按升序输出。

  用汇编语言实现,方法不限。

  时间:

三小时。

  下面给出此题一解法:

(注:

实现方法很多,这里只供参考)

  方法:

在内存中开辟一串以字为单位的内存单元,为了存放输入的四位十进制数,由于从键盘输入的每一次数均为0-9的一位十进制数,它的输入编码为30H-39H的八位二进制数,将它的高四位置0,就可以得到一个四位二进制数,将第一次输入的数暂存由一个寄存器中,等第二次输入并处理为一个高四位为0的十进制数后,将寄存器左移四位后与新输入的数相加,依次输入完四位十进制数,可以得到一个十六位的BCD码,将寄存器内的数放入内存单元(一个字),待全部数输入完后就可将内存单元中的乱序BCD码排序,然后将排序后的BCD码输出,就为升序的十进制数。

  

  datasegment;设置数据段

  in_dispdb'input:

$'

  out_dispdb'output:

$'

  numbdw100dup(0)

  dataends

  codesegment;设置代码段

  assumecs:

code,ds:

data

  start:

  movax,data;将数据段段寄存器DS置为实际地址

  movds,ax

  leadx,in_disp;显示提示信息

  movah,9

  int21h

  subbx,bx

  subcx,cx

  subdi,di

  subsi,si

  r1:

;输入数组到内存

  movah,1

  int21h

  cmpal,0dh

  jzexit1

  cmpal,''

  jznub_mem

  subal,30h

  movcl,4

  shlbx,cl

  addbl,al

  jmpr2

  nub_mem:

  movnumb[si],bx

  addsi,2

  incdi;累计输入个数

  subbx,bx

  r2:

  jmpr1

  exit1:

  movnumb[si],bx

  incdi

  movdl,0ah;显示换行、回车

  movah,2

  int21h

  movdl,0dh

  movah,2

  int21h

  movcx,di;进行排序

  deccx

  subbx,bx

  px:

  movax,numb[bx]

  movsi,2

  movdx,cx

  px1:

  cmpax,numb[bx+si]

  jcpxx

  xchgax,numb[bx+si]

  movnumb[bx],ax

  pxx:

  addsi,2

  decdx

  jnzpx1

  addbx,2

  looppx

  leadx,out_disp;显示输出提示

  movah,9

  int21h

  subsi,si;输出排序后的数组

  r3:

  movbx,numb[si]

  movdl,bh

  movcl,4

  shrdl,cl

  adddl,30h

  movah,2

  int21h

  movdl,bh

  anddl,0fh

  adddl,30h

  movah,2

  int21h

  movdl,bl

  movcl,4

  shrdl,cl

  adddl,30h

  movah,2

  int21h

  movdl,bl

  anddl,0fh

  adddl,30h

  movah,2

  int21h

  movdl,''

  movah,2

  int21h

  addsi,2

  decdi

  jnzr3

  movah,4ch;调用DOS21H的4C子功能返回DOS

  int21h

  codeends

  endstart

 

汇编语言自测试题

(2)

 

1.指令MOVTABLE[SI],DX中,源操作数寻址方式是,目的操作数寻址方式是。

2.已知(AX)=0D765H,(SI)=0400H,(DS)=1000H,(CX)=2305H,(10400H)=67H,(10401H)=0A8H,(10402H)=0D2H,写出下列各条指令独立执行后有关寄存器和标志位的值。

 

(1)MOVDX,SI(DX)=H

 

(2)MOVBX,[SI](BX)=H

 (3)RORAX,CL(AX)=H,CF=

3.设(SS)=00A8H,(SP)=000CH,POPBX指令执行后,栈顶物理地址是H。

4.写出具有下列功能的伪指令语句:

 

(1)在BETA为首地址的存储单元中连续存放字节数据:

2个24,5个'A',10个(1,2)

 

(2)将字数据2965H,5612H存放在定义为字节变量ALPHA的存储单元中,并且不改变数据按字存储的次序

5.按下列要求写出指令或指令序列:

(1)将立即数0A4H与符号地址为NUMBER的存储器字节单元内容相加。

(2)测试CX的b9位是否为1,若是,则转DONE执行。

(3)将首地址为ARRAY字数组的第3个字清0。

(4)设有数据定义如下:

BUFDW1234H,5678H,将第3个字节数据送入AL。

(5)设X、Y、Z均为16位有符号数,计算Z<--(X-1)/(Y+6)

1.MOVBH,AL

  ANDBH,0FH

  MOVCL,4

  SHRAL,CL

  MOVBL,AL

问题:

设(AL)=57H,上述指令执行后,(BH)=H,(BL)=H。

2.N1DW'AB'

  N2DB16DUP(?

  CTEQU$-S1

  MOVCX,CT

  MOVAX,N1

问题:

上述指令执行后,(CX)=H,(AX)=H。

3.DAT1DB0,1,2,3,4,5,6,7,8,9

  DAT2DB10DUP(?

  ...

  MOVCX,5

  MOVBX,5

  MOVSI,0

  MOVDI0

 N1:

MOVAL,DAT1[BX+SI]

  MOVDAT2[DI],AL

  INCSI

  INCDI

  LOOPN1

问题:

上述指令执行后,DAT2中前5个数据是。

4.MOVCX,NUM

  XORAL,AL

 L1:

JCXZL2

  SHLCX,1

  JNCL1

  INCAL

  JMPL1

L2:

MOVRESULT,AL

问题:

(1)该程序段的功能是。

(2)若NUM中数据是0E5A6H,则运行后RESULT中数据为。

5.DATASEGMENT

  BUFDB'ABCDEFGH'

  FLAGDB?

  DATAENDS

  ...

  LEADI,BUF

  MOVAL,'E'

  CLD

  MOVCX,8

  REPNZSCANS

  JZOK

  MOVFLAG,-1

  JMPDONE

  OK:

DECDI

  MOVFLAG,1

  DONE:

...

问题:

上述指令执行后,(DI)=,(FLAG)=

 下面程序段的功能是将输入的2位十进数(ASCII码)转换成BCD码存入DL。

 例如:

输入数据为'1','2',则DL中应为21。

请完善之。

  MOVAH,

  ANDAL,

  MOVDL,AL

  MOVCL,

  INT21H

  AL,CL

  ADDDL,AL

(必须写完整的程序)

将一个包含有50个字数据的数组ARRAY分成两部分:

正数数组P和负数数组N,并将正数的个数和负数的个数分别存放在相应数组的第一字中。

  汇编语言自测试题(3)

一.单选题(每小题1分,共10分)

  在四个备选的答案中,选出一个正确答案,请将其序号填在题中的括号内

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

A.C语言B.汇编语言C.机器语言D.面向对象语言

2.唯一代表存储空间中每个字节单元地址的是()

A.段地址B.偏移地址C.有效地址D.物理地址

3.在8086中,存储器是分段组织,每段最大长度是()

A.16KBB.32KBC.64KBD.128KB

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

A.AX,BX,CX,DXB.SP,BP,IP

C.SI,DI,FLAGSD.上属三者都是

5.VAR是数据段中定义的变量,指令MOVAX,VAR源操作数的寻址方式是()

A.立即寻址B.直接寻址C.相对寻址D.寄存器寻址

6.下列指令执行后,不影响标志位的指令是()

A.PUSHAXB.ADDDX,CXC.XORAX,AXD.CMPAX,5

7.下列指令执行后,一定能使CF=0的指令是()

A.NOTAXB.ORAX,AXC.SUBBX,SID.ROLAX,1

8.设(DS)=8260H(DI)=3500H,指令DECWORDPTR[DI]操作数的物理地址是()

A.11760HB.85B00HC.86100HD.以上都不时

9.循环指令LOOPAGAIN终止循环的条件是()

A.(AX)=0B.(BX)=0C.(CX)=0D.(DX)=0

10.对寄存器AX中的值除以2正确的指令序列是()

A.MOVAX,-51B.MOVAX,-51

SHRAX,1RORAX,1

C.MOVAX,-51D.以上都不是

SARAX,1

二.填空题(每空格1分,共15分)

1.在8086/8088系统中,存储器是分段组织的,存储器物理地址计算公式是⑴。

2.在程序执行过程中,指令的段地址存放在⑵寄存器中,偏移地址存放在⑶寄存器中。

3.下列六条指令语句正确的是⑷⑸二句。

A.PUSHCSB.ADDCX,[SI+DI]C.ANDAX,0FH

D.MOVCL,256E..MOVAX,[BL]F.ADDDS,AX

4.已知(DS)=2F00H(ES)=3F00H(SS)=1A80H(BX)=0800H

(SI)=0010H(DI)=0A00H(BP)=0040H计算下列指令源操作数的物理地

址,指出寻址方式

(1)MOVAX,[BP+6]物理地址⑹寻址方式⑺

(2)ADDAX,ES:

[BX]物理地址⑻寻址方式⑼

5.。

加减运算中,一字节有符号数能表达的数值范围是⑽,运算结果超出

范围称为⑾,此时标志位⑿。

6.乘法指令IMULBX一个乘数在BX中,另一个乘数一定在⒀中,乘积在⒁中。

.

7.与LEABX,VAR指令完全等效的指令是⒂。

三.简答题(每题8分,共24分)

1.按题意写出合适的指令语句,每小题写一条指令

(1)把DX寄存器和CX寄存器的内容相减,结果存入DX寄存器中。

(2)用BX和SI的基址变址寻址,将存储器中的一个字传送到CX寄存器中。

(3)取数组ARRAY的起始地址到BX寄存器中。

(4)将DX寄存器的高四位置1

2.执行下列指令语句,把执行结果填在空格中

(1)已知(AL)=0FFH,(BL)=10H

执行MULBL则(AH)=⑴(AL)=⑵

(2)已知(DS)=2500H(SI)=00A0H(250A0H)=01H(250A1H)=96H

执行ROLWORDPTR[SI],1则(250A0H)=⑶,(250A1H)=⑷,

CF=⑸

(3)已知(SS)=3000H(SP)=200H(AX)=785AH(BX)=1234H,

先执行PUSHAX,再执行PUSHBX,此时(SS)=⑹(SP)=⑺

数12H存放的物理地址是⑻.

3.已知数据段定义如下:

DATASEGMENT

VADB10H

VBDW3*20

MSGDB‘HELLO!

COUNTEQU15

BUFDWCOUNTDUP(5,3DUP(1,2),0)

DATAENDS

问题:

(1)执行MOVBX,0FFSETVA后,(BX)=

(2)执行MOVCX,TYPEBUF后,(CX)=

(3)用一条指令将字母’O’取到AL中.

(4)经汇编后,BUF占有的存储空间是字节

四.程序分析题(每题7分,共21分)

1.MOVAX,0

MOVBX,1

MOVCX,5

LOP:

ADDAX,BX

ADDBX,2

LOOPLOP

HLT

问题:

(1)程序的功能是什么(可用算式表示)?

(2)运行后,(AX)=.

2.已知(AX)=3200H,(DX)=0A000H,执行下列程序段:

NOTAX

NOTDX

ADDAX,1

ADCDX,0

HLT

问题:

(1)程序执行后,(AX)=(DX)=.

(2)程序功能是什么?

3.执行下列程序:

MOVAX,9B47H

MOVBX,0B568H

ADDAX,BX

JNOL1

JNCL2

SUBAX,BX

JNCL3

JNOL4

JMPSHORTL5

问:

程序执行后,(AX)=,程序转向

五.程序填空(每题5分,共10分)

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

⑴__________

MOVCL,3

⑵____________

POPBX

ADDAX,BX

2.设AX,BX。

CX中的数是数带符号,下列程序求AX、BX、CX中的最小值,

结果在AX中.请将程序填写完整。

CMPAX,BX

⑴_________________

XCHGAX,BX

NEXT:

CMPCX,AX

⑵___________________

XCHGAX,CX

EXIT:

六.按要求编程(每题10分,共20分)

1.测试AL寄存器的D5和D0位,若同时为0,程序转向ZERO,执行AX减去BX;否则将AL清0,同时清CF和OF标志。

写出程序段.

2.设X、Y、Z、W为十六位有符号数编程计算:

W←((X+Y*Z)/8)-Y除法余数丢弃

若ZF=1,程序转EQ;否则转NOT_EQ。

标准答案

一.单选题(每小题1分,共10分)

1.C2.D3.C4.A5.B

6.A7.B8.B9.C10C.

二.填空题(每空格1分,共15分)

(1)段地址*16+偏移地址

(2)CS(3)IP(4)(5)A,C(次序无关)

(6)1A846H(7)寄存器相对寻址

(8)3F800H(9)寄存器间接寻址

(10)-128~+127(11)溢出(12)OF=1

(13)AX(14)DX,AX(15)MOVBX,OFFSETVAR

三.简答题(每题8分,共24分)

1.

(1)SUBDX,CX

(2)MOVCX,[BX+SI]

(3)LEABX,ARRAY或MOVBX,OFFSETARRAY

(4)ORDX,0F000H

2.

(1)0FH

(2)0F0H(3)03H(4)2CH(5)1

(6)3000H(7)1FCH(8)1FDH

3.

(1)0

(2)2(3)MOVAL,MSG+4

(4)240

四.程序分析题(每小题7分,共21分)

1.

(1)1+3+5+7+9

(2)25

2.

(1)0CE00H5FFFH

(2)双字长数DX,AX求补

3.

(1)9B47H

(2)L5

五.程序填空(每小题5分,共10分)

1.

(1)PUSHAX

(2)SHLAX,CL

2.

(1)JLENEXT

(2)JGEEXIT

六..按要求编程(每题10分,共20分)

1.TESTAL,00100001B

JZZERO

SUBAX,AX

JMPSTOP

ZERO:

SUBAX,BX

STOP:

HLT

2.MOVAX,Y

IMULZ

MOVBX,DX

MOVCX,AX

MOVAX,X

CBW

ADDAX,CX

ADCDX,BX

MOVCX,8

IDIVCX

SUBAX,Y

MOVW,AX

JZEQ

NOT_EQ:

 

汇编试题(4)

一、选择题

1.说明下列伪操作的功能:

〖A〗PTR〖B〗OFFSET〖C〗SEGMENT

〖D〗ASSUME〖E〗PROC

 

〖A〗END〖B〗ENDS〖C〗ENDP

〖D〗ENDM〖E〗ORG

 

〖A〗EQU〖B〗PTR〖C〗MACRO

〖D〗DD〖E〗ORG

供选择的答案:

1)过程定义语句2)内存变量的偏移地址3)子程序结束语句。

4)段寄存器分配语句5)逻辑段定义语句6)修改或定义内存变量类型。

7)宏定义语句8)宏定义结束语句9)逻辑段结束语句。

10)

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

当前位置:首页 > 高中教育 > 其它课程

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

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