汇编语言复习题.docx

上传人:b****2 文档编号:102875 上传时间:2023-04-28 格式:DOCX 页数:24 大小:30.41KB
下载 相关 举报
汇编语言复习题.docx_第1页
第1页 / 共24页
汇编语言复习题.docx_第2页
第2页 / 共24页
汇编语言复习题.docx_第3页
第3页 / 共24页
汇编语言复习题.docx_第4页
第4页 / 共24页
汇编语言复习题.docx_第5页
第5页 / 共24页
汇编语言复习题.docx_第6页
第6页 / 共24页
汇编语言复习题.docx_第7页
第7页 / 共24页
汇编语言复习题.docx_第8页
第8页 / 共24页
汇编语言复习题.docx_第9页
第9页 / 共24页
汇编语言复习题.docx_第10页
第10页 / 共24页
汇编语言复习题.docx_第11页
第11页 / 共24页
汇编语言复习题.docx_第12页
第12页 / 共24页
汇编语言复习题.docx_第13页
第13页 / 共24页
汇编语言复习题.docx_第14页
第14页 / 共24页
汇编语言复习题.docx_第15页
第15页 / 共24页
汇编语言复习题.docx_第16页
第16页 / 共24页
汇编语言复习题.docx_第17页
第17页 / 共24页
汇编语言复习题.docx_第18页
第18页 / 共24页
汇编语言复习题.docx_第19页
第19页 / 共24页
汇编语言复习题.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

汇编语言复习题.docx

《汇编语言复习题.docx》由会员分享,可在线阅读,更多相关《汇编语言复习题.docx(24页珍藏版)》请在冰点文库上搜索。

汇编语言复习题.docx

汇编语言复习题

选择题

1、80X86通用寄存储器各有不同特殊功能,其中CX寄存器特定用法是-----B------。

A、I/O指令间接寻址中作地址寄存器

B、在循环指令作循环计数寄存器

C、间接寻址中作变址寄存储器在

D.间接寻址中作基址寄存器

2、80X86通用寄存储器各有不同特殊功能,其中DX寄存器特定用法是----A-------。

A、I/O指令间接寻址中作地址寄存器

B、在循环指令作循环计数寄存器

C、间接寻址中作变址寄存储器在

D.间接寻址中作基址寄存器

(AX,BX,CX,DX,SI,DI,BP等作用)

3、指令MOV[BX][DI],DX中段内地址为----------A----------。

A、BX值加DI值B、BX值减DI值

C、BX值左移4位加DI值D、BX值加DI值左移4位

4、如下指令可将AX寄存器内容改变的是---------C---------。

A、XCHGAX,AXB、CMPAX,BX

C、ANDAX,BXD、TESTAX,BX

5、指令MULCX是将-------B-----------。

A、(AX:

DX)←(AX)*(CX)B、(DX:

AX)←(AX)*(CX)

C、(AX:

BX)←(AX)*(CX)D、(AX:

CX)←(AX)*(CX)

6、下列指令的表示中,不正确的是--------B-----------。

A、MOVAX,100B、MOVDS,200C、ADDAL,200D、MOVAX,DS

7、下列指令中不会改变指令指针寄存器IP内容的是-------A------------。

A、ADDB、JMPC、CALLD、RET

8、汇编程序中语句DAT1DB08H的含义是-----------D----------。

A、用DAT1表示08H

B、从标号DAT1对应的地址起08H个单元被分配

C、定义DAT1为变量,其地址为0008H

D、定义DAT1为变量,其初值为08H

9、指令SHLAL,CL是-------B-------。

A、AL内容左移到CL寄存器中,低位补0

B、AL内容左移CL指出的位数,低位补0

C、AL内容左移到CL寄存器中,低位补AL高位

D、AL内容左移CL指出的位数,低位补AL高位

(SAL、SHR、SAR、ROL、ROR、RCL、RCR如何?

10、中断处理系统一般是由------D--------组成。

A、软件B、硬件C、固件D、硬件与软件

11、在8088/8086系统中,中断向量是指-------B--------.

A.中断类型号B.中断服务程序入口地址

C.存放中断处理程序入口地址的存储单元的地址

D.保护断点的栈区地址

12、执行INAL,DX指令后,进入AL寄存器的数据来自D。

A、寄存器 B、存储器  C、立即数  D、外设端口

13、指令JMPFARPTRDONE属于C

 A.段内转移直接寻址  B.段内转移间接寻址

 C.段间转移直接寻址D.段间转移间接寻址

14、对于下列程序段:

 AGAIN:

MOVAL,[SI]

    MOVES:

[DI],AL

    INCSI

    INCDI

    LOOPAGAIN

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

  

  A.REPMOVSB B.REPLODSB

C.REPSTOSB  D.REPESCASB

15、串指令中的目的操作数地址是由___C___提供。

   

  A.SS:

[BP]  B.DS:

[SI]

 C.ES:

[DI]  D.CS:

[IP]

16、在下列指令的表示中,不正确的是C。

 A.MOVAL,[BX+SI]  B.JMPSHORTDONI

C.DEC[BX]D.MULCL

填空题

1.如果用24位存储一个无符号数,该数的范围是

;如果存储的是一个补码表示的有符号数,该数的范围则是

2.指令MOVAX,[BX][SI]中源操作数的寻址方式为____基址变址寻址__________,目的操作数的寻址方式为______寄存器寻址__________。

3.已知存储器中2000:

1000H单元中的数据为1234H,则此单元的物理地址为21000,有效地址为1000H。

4.变量的类型有db、dw、dd,标号的类型有near、far。

5. 设内存中某一单元的物理地址为12345H,试完成下列不同的逻辑地址表示:

(1)1234H:

0005H

(2)1200H:

0345H

6.已知两数5678H和0DCBAH相加,试写出下列各标志位的置位情况和相加结果。

OF:

0SF:

0AF:

1CF:

1结果:

3332H

7.已知两数5678H和0DCBAH相减,试写出下列各标志位的置位情况和相加结果。

OF:

0SF:

0AF:

1CF:

1结果:

79beH

8.写出下列存储器地址的段基址、偏移地址和物理地址。

4132H:

5300H

段基址:

4132H偏移地址:

5300H物理地址:

46620H

9.已知DS=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,

(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,说明下列指令执行后AX寄存器的结果。

(1)MOVAX,1200H1200H

(2)MOVAX,BX0100H

(3)MOVAX,[1200H]4C2AH(4)MOVAX,[BX]3412H

(5)MOVAX,1100H[BX]4C2AH(6)MOVAX,[BX][SI]7856H

(7)MOVAX,1100H[BX][SI]65B7H

10、设(SS)=2F00H,(SP)=0140H,若在堆栈中存入5个数据,则栈顶的物理地址为______2F136_____H,若又从堆栈中取出3个数据,则栈顶的物理地址为___2F13C____H。

11、令MOVAX,0F0F0H和ADDAX,4652H执行后,CF=___1___,SF=____0____。

12、汇编语言程序中语句格式由标识符、操作符、操作数、注释四部分组成。

13、映像文件产生于______汇编______阶段,列表文件产生于______连接________阶段。

14、808CPU具有20根地址线,直接寻址能力可达1M。

15、8088CPU中共有14个寄存器,这些寄存器可分为2大组。

16、8088CPU从结构上可以分为执行单元EU和接口单元BIU。

17、AX、BX、CX、DX均为16位寄存器,也可作为两个8位寄存器使用。

18、F标志寄存器共有9个标志位,除OF、SF、AF和CF外,还有PF、ZF、TF、IF、DF,其中用于记录是否产生进位的标志位是CF。

19操作数有三种类型,分别为DB操作数、DW操作数和DD操作数。

20、一个源程序中可以包含代码段、数据段及堆栈段。

其中代码段是源程序中必不可少的,其它两个段可有可无。

21、SEGMENT/ENDS称为段定义伪指令;ASSUME称为段寻址伪指令;源程序结束伪指令为END;三种数据定义伪指令分别为DB、DW、DD。

22、常用的DOS功能调用中的1号功能调用完成由键盘输入一个字符操作,2号功能调用完成在屏幕上显示一个字符。

9号功能调用:

在屏幕上显示一个字符串;0A号功能调用:

由键盘读入一个字符串。

23、一般称SP为堆栈指针寄存器,称AX为累加寄存器。

判断正误,并改正错误

1.一个段允许的最大容量为64KB,故无法使用超过64KB之外的存储器单元。

F(允许段超越)

2.指令POPCS可用于改变CS寄存器的值。

F(popcs是非法指令,会导致代码段非正常改变)

3.CS段只能存放程序代码,DS段只能存放数。

F(数据可以放在CS段,也可以放在DS段,程序代码亦然。

但是CPU不会把放在CS段中的数据当作数据执行,也不去读DS段中的程序代码)

4.若AX=1234H,执行进栈指令后,SS:

SP单元的内容为1234H。

T

5.汇编语言程序中可以使用的语句有指令,伪指令和宏指令。

T

6.循环指令LOOP为短转移指令。

T

7.JNA指令与JB指令是等价的指令。

F(JNA为不高于则转移,JB为低于则转移

8.指令MOV[SI],[DI]是错误指令。

T(两个操作数不能同时为内存单元)

9.指令ADD[SI],5是正确的指令。

T

10.inc和loop指令不影响CF标志位。

T

简答题

1、8086/8088CPU从功能上分为几个独立的功能部件,分别是什么?

答:

分为两个独立的功能部件:

(1)总线接口部件(BIU):

功能,负责CPU与存储器、I/O端口传送数据。

即从内存取指令,送指令队列缓冲器。

(2)执行部件(EU):

功能,负责指令的译码、执行指令。

2、简述微机中对存储器进行地址分段的原因。

答:

IBMPC机的字长为16位,可以访问的最大存储空间为

=64KB;IBMPC的最大存储容量为1M=

,要访问1M字节空间的存储空间需20位地址。

采用存储器地址分段的方法,实现在16位字长的机器里,提供20位地址。

3、在8086/8088CPU中,物理地址和逻辑地址是指什么?

已知逻辑地址为2E00:

5A00H,计算出其对应的物理地址。

答:

Cpu与存储器进行数据交换时在地址总线上提供的20位地址信息称为物理地址。

逻辑地址是16位段地址和16位偏移地址组成的地址。

33A00H

4、试比较“ADD”和“+”的区别。

答:

“ADD”是加法指令,为指令的操作码部分,有对应的机器码;“+”是算术操作符,没有对应的机器码,在指令的操作数部分;汇编程序对包含“+”操作符的表达式进行计算后,得到一个数值。

5、什么是寻址方式,有哪三种?

答:

指令通常由操作码和操作数两部分组成,寻址方式即指如何寻找操作码或操作数的方式,大多数情况是指寻找操作数的问题。

可分为立即寻址、寄存器寻址和内存寻址三大种。

     解释下列名词:

(1)机器指令程序

(2)  汇编指令(3)   汇编语言(4) 汇编语言程序

(5)  汇编语言源程序(6)寻址方式

答:

(1)机器指令程序:

指CPU能直接识别并执行的指令程序。

(2)汇编指令:

指汇编语言中使用的一些操作符和助记符,还包括一些伪指令。

(3)汇编语言:

是面向机器的程序设计语言,由汇编指令、伪指令和其他符号组成。

(4)汇编语言程序:

也称为汇编语言源程序,是用汇编语言编写的一种计算机程序,属于计算机低级语言程序,是属性为ASM的源文件。

(5)汇编语言源程序:

同(4)。

(6)寻址方式:

定位内存单元的方法。

   指出下列指令中源操作数和目的操作数分别采用的是哪种寻址方式。

(1)MOVDAT,64H;源:

立即寻址;目的:

直接寻址

(2)ADDAL,DAT[BX][SI];源:

相对基址变址寻址;目的:

寄存器寻址

(3)MUL[BX];源:

寄存器间接寻址;目的:

寄存器寻址

(4)MOVBX,100H;源:

立即寻址;目的:

寄存器寻址

(5)MOVSW;源:

寄存器间接寻址;目的:

寄存器间接寻址

(6)ADDAX,BX;源:

寄存器寻址;目的:

寄存器寻址

(7)MOVBX,[100];源:

直接寻址;目的:

寄存器寻址

指出下列各指令分别属于哪一类指令

(1)     ADCAX,BX;算术运算指令(ADC:

带进位加法)

(2)     LEABX,DAT;目的地址传送指令(LEA:

装入有效地址)

(3)     RCLAX,CL;逻辑运算指令(RCL:

通过进位的循环左移。

CL指定次数)

(4)     CLD;控制指令(CLD:

方向标志位置0指令)

(5)     XORAL,0FH;逻辑运算指令(XOR:

异或运算)

(6)     LOOPNEXT;循环控制指令

(7)     HLT;控制指令(HLT:

停机)

(8)     OUTDX,AL;输出传送指令

 指出下列指令的功能。

(1)MOVAX,DISP[SI];以偏移量DISP与SI中的内容的和为源单元地址,将该地址中的内容送入AX中。

(2)LEADX,BUF;将BUF中的偏移地址装入DX中。

(3)PUSHBX;将BX中的数据入栈,SP指向SP-2。

(4)JNCNEXT;当CF=0时,则跳转到NEXT标号处。

 指出下列指令的错误。

(1)MOV[BX],[DI];两个操作数不能同时在存储器中

(2)MOVDS,100H;立即数不能直接传送给段寄存器

(3)RLCAX,4;没有此操作码

(4)CMPBYTEPTR[BX],AB;不能对两个存储器中的操作数进行比较

(5)MOVAX,[BX][BP];同一个操作数中不能同时用两个基址寄存器

(6)ADD15H,BX;目的操作数不能为立即数

(7)MOVCS,AX;不能用MOV指令修改CS的值

(8)MOVAX,[SI]{DI};DI中使用的括号不对

根据以下要求,写出对应的汇编语言指令

(1)用偏移地址1020H直接寻址,把存储单元一个字内容与立即数3相加,结果存入存储单元。

ADDWORDPTR[1020H],3

(2)写出清AL寄存器内容和CF的指令。

Subal,al

(3)写出AL内容不变,仅清CF的指令。

Cmpal,al

(4)写出执行以下计算的指令序列,其中各变量均为16位有符号数。

①Z←W+(Z-X)

MOV AX, W    

MOV BX, Z    

SUB  BX, X    

ADD AX, BX    

MOV Z, AX 

②Z←(W*X)/(Y+6)

MOVAX,W

IMULX

MOVBX,Y

ADDBX,6

IDIVBX

MOVZ,AX

 

程序分析题:

1、设X、Y、Z、V均为16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。

MOVAX,X;ax=X

IMULY;dx,ax=X*Y

MOVCX,AX;cx=X*Y的低16位

MOVBX,DX;bx=X*Y的高16位

MOVAX,Z;ax=Z

CWD;dx,ax=Z(双字)

ADDCX,AX;cx=Z的低16位+X*Y的低16位

ADCBX,DX;bx=Z的高16位+X*Y的高16位+低位进位

SUBCX,540;cx=Z的低16位+X*Y的低16位-540

SBBBX,0;bx=Z的高16位+X*Y的高16位+低位进位-低位借位

MOVAX,V;ax=V

CWD

SUBAX,CX;ax=V的低16位-(Z的低16位+X*Y的低16位-540)

SBBDX,BX;dx=V的高16位-(Z的高16位+X*Y的高16位+低位进位-低位借位)-低位借位

IDIVX;/X

运算公式:

[V-(X*Y+Z-540)]/X,AX存商,DX存余数

2、设有三个八位无符号数x、y、z分别存放在DAT、DAT1、DAT2单元中,请写出下列程序段的功能:

MOVAX,0;ax=0

MOVRES,AX;res=ax=0

LEABX,DAT;bx=offsetx

MOVAL,3;al=3

CALLSUB1;puship,jmpnearptrsub1

MOVAL,5;al=5

CALLSUB1;puship,jmpnearptrsub1

MOVAL,7;al=7

CALLSUB1;puship,jmpnearptrsub1

HLT;暂停

SUB1:

MUL[BX];ax=

ADDRES,AX;res=

MOVAX,0;ax=0

INCBX;bx=bx+1

RET;popip

答:

计算3x+5y+7z的值,送入res及res1单元保存。

3、 若DATA1与DATA2都是内存单元的地址,请指出下列程序段的功能:

MOVAL,0;al=0

LEASI,DATA1;si=offsetdata1

LEABX,DATA2;bx=offsetdata2

MOVCX,64H;cx=64h,循环100次

NEXT:

MOVAL,[SI];al=data1单元的数据

MOV[BX],AL;data2中的内容=data1单元的数据

INCSI

INCBX

LOOPNEXT

HLT

答:

将从data1单元地址开始的100个字节类型的数传到以data2单元地址开始的存储区。

4、阅读下面程序段,指出完成什么功能?

BEGIN:

MOVAL,ADR1;ADR1是字节单元地址

TESTAL,1;测试al=1,test做“与”,仅改变ZF位

JZBRCH;若ZF=1,转到brch

MOVBL,80H;若al=0,则bl=-1

JMPSTOP;

BRCH:

MOVBL,0H;若al=1,则bl=0

STOP:

MOVADR2,BL;ADR2是字节地址

HLT

答:

if(adr1)=1

Then(adr2)=0

Else(adr2)=-1

5、假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q,(X和Y为低位字),说明下列程序段的功能。

SUB1:

MOVDX,X+2;dx=x+2

MOVAX,X;ax=x

ADDAX,X;ax=2x

ADCDX,X+2;dx=2(x+2)+cf,

CMPDX,Y+2;(cmp相当于做减法运算,但不保存结果。

先判断p的高位的2倍)

JLL2;若p高位两倍小于y+2,则跳至L2处

JGL1;若p高位两倍大于y+2,则跳至L1处

CMPAX,Y;P的低位的两倍与Q的低位作比较

JBEL2;若P的低位的两倍低于等于Q的低位时,跳到L2处

L1:

MOVAX,1;若2P大于Q,则ax=1

JMPSHORTEXIT;

L2:

MOVAX,2;若2P小于等于Q,则ax=2

EXIT:

RET

答:

判断2P是否大于Q。

如果大于,AX=1,否则AX=2.程序的算法是先判断高字节,如果高字节相等再判断低字节。

6、阅读下列程序,并将该程序执行后的结果填入空格

DATASEGMENT

BLOCKDB00H,12H,35H,64H,41H,7FH

DB80H,0ABH,0EFH,5FH

VALDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

XORAX,AX;进行异或运算

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETBLOCK;ds:

bx指向数据段0位置处

MOVAL,[BX];将data段数据送入al

INCBX

MOVCX,09

AGAIN:

CMPAL,[BX]

JGNEXT;大于则转移

MOVAL,[BX]

NEXT:

INCBX

DECCX

JNZAGAIN;若ZF=0,则跳到again

MOVVAL,AL

MOVAX,4C00H

INT21H

CODEENDS

ENDMAIN

结果:

BX=0aH

[VAL]=0EFH标志位CF=0

该程序的功能是:

将数据段的数据逐个比较,将较大的数送入AL中,再将最后的结果送入VAL中。

 

7、下面程序查找字符串string中是否有字母“A”,有则AL=0;否则AL=-1,请将程序填写完整。

MOVCX,20;假设字符串长度为20

MOVSI,0

Moval,65

NEXT:

CMPAL,STRING[SI]

JEYESA

INCSI

LOOPNEXT

NOA:

MOVAL,-1

JMPSHORTDONE

YESA:

MOVAL,0

DONE:

HLT

8、补全编程,利用jcxz指令实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中

assumecs:

code

codesegment

start:

movax,2000h

movds,ax

movbx,0

s:

movcl,[bx]

Movch,0

Jcxzok

Incbx

jmpshorts

ok:

movdx,bx

movax,4c00h

int21h

codeends

endstart

9、补全编程,利用LOOP指令实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中

assumecs:

code

codesegment

start:

movax,2000H

movds,ax

movbx,0

s:

movcl,[bx]

movch,0

Inccx

incbx

loops

ok:

decbx

Movdx,bx

movax,4c00h

int21h

codeends

endstart

编写程序题:

1、A、B、C均为8位有符号数,求它们的和,送入TOTAL。

Assumecs:

code,ds:

data

Datasegment

Totaldw0

Dataends

Codesegment

Start:

Movax,data

Movds,ax

Moval,0Ah;取A

Cbw;扩展为16位

Movdx,ax;第一个数转存入dx

Moval,0Bh;取B

Cbw

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

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2