汇编试题Word下载.docx

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

汇编试题Word下载.docx

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

汇编试题Word下载.docx

  MESG2DB'

IT'

SREVERSEIS:

'

  BUFDBMAXNO,?

MAXNODUP(?

  DSEGENDS

  CSEGSEGMENT

  ASSUMECS:

CSEG,DS:

DSEG

  START:

________________

  MOVDS,AX

  MOVDX,OFFSETMESG1

  MOVAH,9

  INT21H

  MOVDX,OFFSETBUF

  __________________

  XORAX,AX

  __________________;

取实际读入字符个数

  LEADI,BUF+2

  MOVSI,DI

  ADDSI,AX

  MOVBYTEPTR[SI],'

  DECSI

  CONT:

  CMPDI,SI

  _______________

  MOVAL,[SI]

  XCHGAL,[DI]

  ________________;

调整DI

  JMPCONT

  FINISHD:

  LEADX,BUF+2

  MOVAH,9

  MOVAX,4C00H

  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

  cmpal,0dh

  jzexit1

  cmpal,'

'

  jznub_mem

  subal,30h

  movcl,4

  shlbx,cl

  addbl,al

  jmpr2

  nub_mem:

  movnumb[si],bx

  addsi,2

  incdi;

累计输入个数

  r2:

  jmpr1

  exit1:

  incdi

  movdl,0ah;

显示换行、回车

  movah,2

  movdl,0dh

  movcx,di;

进行排序

  deccx

  px:

  movax,numb[bx]

  movsi,2

  movdx,cx

  px1:

  cmpax,numb[bx+si]

  jcpxx

  xchgax,numb[bx+si]

  movnumb[bx],ax

  pxx:

  decdx

  jnzpx1

  addbx,2

  looppx

  leadx,out_disp;

显示输出提示

  subsi,si;

输出排序后的数组

  r3:

  movbx,numb[si]

  movdl,bh

  shrdl,cl

  adddl,30h

  anddl,0fh

  movdl,bl

  movdl,'

  decdi

  jnzr3

  movah,4ch;

调用DOS21H的4C子功能返回DOS

  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

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

(2)程序功能是什么?

3.执行下列程序:

MOVAX,9B47H

MOVBX,0B568H

JNOL1

JNCL2

SUBAX,BX

JNCL3

JNOL4

JMPSHORTL5

问:

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

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

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

⑴__________

MOVCL,3

⑵____________

POPBX

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