汇编复习题c.docx

上传人:b****4 文档编号:12342189 上传时间:2023-04-18 格式:DOCX 页数:33 大小:35.60KB
下载 相关 举报
汇编复习题c.docx_第1页
第1页 / 共33页
汇编复习题c.docx_第2页
第2页 / 共33页
汇编复习题c.docx_第3页
第3页 / 共33页
汇编复习题c.docx_第4页
第4页 / 共33页
汇编复习题c.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

汇编复习题c.docx

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

汇编复习题c.docx

汇编复习题c

一、+选择题

1、汇编语言源程序经汇编后不能直接生成C。

A.OBJ文件B.LST文件C.EXE文件D.CRF文件

2、若SP=1500H,那么执行完PUSH指令后,SP=B。

A.14FFHB.14FEHC.1502HD.1501H

3、JMPWORDPTR[DI]是A。

A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移

4、与MOVSI,OFFSETX等价的指令是C。

A.MOVSI,XB.LESSI,XC.LEASI,XD.LDSSI,X

5、运算型指令的寻址和转移型指令的寻址,其不同点在于A。

A.前者取操作数,后者决定程序的转移地址B.后者取操作数,前者决定程序的转移地址

C.两者都是取操作数D.两者都是决定程序的转移地址

6、下列指令D是合法的访问I/O端口指令。

A.INAL,100HB.INAL,BXC.INAL,BLD.INAL,DX

7、逻辑移位指令SHL用于C;

A.带符号数乘2B.带符号数除2C.无符号数乘2D.无符号数除2

而算术移位指令SAL用于A。

A.带符号数乘2B.带符号数除2C.无符号数乘2D.无符号数除2

8、由汇编程序在汇编过程中执行的指令是B

A.机器语言B.伪指令C.状态标志D.物理地址

9、在汇编语言程序设计中,伪指令OFFSET的含义是回送变量或标号的B

A.段地址B.物理地址C.偏移地址D.操作数

10、子程序返回伪指令是C。

A.ENDPB.IRETC.RETD.段内与段间不同

11、使用LINK连接命令,执行后可生成文件的扩展名为C。

A..COMB..OBJC..EXED..LST

12、已知AX的内容为1FFAH,执行XORAX,AX,AX内容为C。

A.00FAHB.1FFAHC.0000HD.1F00H

13、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令是D。

A.CMPB.SUBC.ANDD..MOV

14、INC指令不影响B标志。

A.OFB.CFC.SFD.ZF

15、段内直接调用,程序的转移范围为B。

A.-128~127B.-32768~32767C.-65536~65535D.0~32767

16、中断向量D。

A.传送数据的起始地址B.中断类型号

C.子程序入口地址D.中断服务程序入口地址

17、执行返回指令,退出中断服务程序,这时返回地址来自C。

A.ROM区B.程序计数器C.堆栈区D.CPU的暂存寄存器

18、微机系统中有哪些总线?

D

A.状态总线、数据总线、控制总线B.地址总线、状态总线、控制总线

C.状态总线、数据总线、地址总线D.数据总线、地址总线、控制总线

19、以下不属于总线接口部件BIU部件的是A。

A.通用寄存器B.地址产生器C.指针寄存器D.专用寄存器

20、不能将累加器AX的内容清0的错误指令是B。

A.ANDAX,0B.CMPAX,AXC.SUBAX,AXD.XORAX,AX

21、有如下程序段:

MOVCX,6

MOVAX,1

MOVBX,3

LOP:

ADDAX,BX

ADDBX,2

LOOPLOP

上述指令完成后,AX=B

A.6B.49C.50D.0

22、由汇编程序在汇编过程中执行的指令是D。

A.物理地址B.机器语言C.指令D.伪指令

23、从键盘输入数据1,则在寄存器中存放的形式为A。

A.31HB.01HC.”1”D.‘1’

24、下列有关段地址、偏移地址、物理地址的叙述正确的是D。

A.若已知物理地址,则可以计算出唯一的段地址和偏移地址。

B.段的划分可以从任何一个存储单元开始。

C.8086规定段的大小必须为64K字节。

D.多个段可以共用某些存储单元。

25、中断发生过程和子程序调用过程的一个明显区别是中断发生时,CPU自动清除了A。

A.IF和TF位B.TF位C.IF和SF位D.TF和SF位

26、执行下列指令后:

MOVAX,1234H

MOVCL,4

ROLAX,CL

DECAX

MOVCX,4

MULCX

HLT

寄存器AH的值是C,

A.92HB.8CHC.8DHD.00H

寄存器AL的值是B。

A.60HB.00HC.04HD.0A0H

27、在多模块程序设计中,用B伪指令来声明公用变量。

A.EXTRNB.PUBLICC.MODULED.COMMON

28、交换寄存器SI、DI的内容,正确的程序段是A。

A.PUSHSIB.PUSHSI

PUSHDIPUSHDI

POPSIPOPDI

POPDIPOPSI

C.MOVAX,SID.MOVAX,SI

MOVSI,DIMOVBX,DI

MOVDI,AXXCHGBX,AX

29、8086/8088响应中断时,不自动压入堆栈的有B。

A.CS的内容B.通用寄存器的内容

C.IP的内容D.标志寄存器的内容

30、堆栈的工作方式是A。

A.先进后出B.后进后出C.先进先出D.先进不出

31、求下面变量定义的元素个数送CX的正确形式是D。

ARRAYDW1,9,9,9,12,1

A.MOVCX,LENGTHARRAYB.MOVCX,SIZEARRAY

C.COUNTEQU$-ARRAYD.COUNTEQU($-ARRAY)/2

MOVCX,COUNTMOVCX,COUNT

32、可屏蔽中断就是它的请求是否被CPU响应要受B位的控制。

A.TFB.IFC.OFD.SF

33、影响堆栈指针SP的指令是B。

A.INT21HB.JMPDOC.RETD.PUSHAX

34、8088/8086存储器分段,每个段不超过D。

 

 A.64K个字B.32K个字节C.1兆个字节D.64K个字节

35、汇编语言是A。

A.低级语言B.中级语言C.高级语言D.机器语言

36、用DEBUG.EXE调试程序时,显示存储单元内容的命令是D。

A.RB.TC.GD.D

37、汇编源程序中,END伪指令后的标号表示C。

A.源程序的结束B.代码段的结束C.汇编程序的入口地址D.该标号无任何意义

38、有如下数据定义:

XDB36H,6FH

YDW2E5DH,4F6FH

则下列指令正确的是C。

A.MOVAX,XB.MOVDL,OFFSETX

C.MOVAX,WORDPTRXD.MOVBL,Y

39、若要求一个操作数中的若干位维持不变,若干位置1,可以使用B

 A.NOTB.OR  C.AND  D.XOR 不

40、下列指令中,源操作数在代码段中的是A。

A.MOVAL,80HB.ADDAL,BLC.CMPAX,[1234]D.ANDAL,ES:

[1234]

41、对于有符号的数来说,下列哪个值最大D。

A.0F8H B.11010011BC.82D.123Q  

二、填空题

1、指出下列指令源操作数的寻址方式:

MOVAX,ARRAY[SI];寄存器相对寻址方式

MOVAX,ES:

[BX];寄存器间接寻址方式

MOVAX,[200H];直接寻址方式

MOVAX,[BX+DI];基址变址寻址方式

MOVAX,BX;寄存器寻址方式

MOVAX,1200H;立即寻址方式

MOVAX,20[BX+SI];相对基址变址寻址方式

MOVAX,[DI+20];寄存器相对寻址方式

2、计算机中的指令由操作码和操作数两部分组成。

3、对于乘法、除法指令,结果存放在AX或DX:

AX中,而其源操作数可以用除立即数以外的任一种寻址方式。

4、逻辑地址是由段地址和偏移地址组成,其中段地址是由段寄存器存储的。

5、当指令“SUBAX,BX”执行后,CF=1,说明最高有效位向高位有进位或有借位;对无符号数,说明操作结果溢出。

6、I/O设备的接口中一般包含数据、状态、控制三种端口。

7、10110101.01B=0B5.4H和181.25D。

8、指令“ANDAX,STR1ANDSTR2”中,STR1和STR2是两个已赋值的变量,两个AND的区别是第一个AND是逻辑与指令、第二个AND是逻辑与操作符。

9、带符号的机器数可以用原码、反码和补码三种不同码制来表示。

11、如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,当执行指令MOVAX,TABLE后,(AX)=1234H;而执行指令LEAAX,TABLE后,则(AX)=0032H。

12、计算机的硬件的基本组成有运算器、控制器、存储器和输入设备、输出设备五大部件。

13、近过程(NEAR)的RET指令把当前栈顶的一个字弹出到IP;远过程(FAR)的RET指令弹出一个字到IP后又弹出一个字到CS;IRET指令是中断返回指令,它从堆栈顺序弹出3个字分别送到IP、CS、标志寄存器FLAGS中。

14、ENDP是过程定义结束伪指令,与PROC配套使用。

ENDS是段定义结束伪指令,与SEGMENT配套使用。

END是一个源模块汇编结束伪指令。

15、一个有16个字的数据区,它的起始地址为70A0:

DDF6,那么该数据区首字单元地址是7E7F6H,最后一个字单元的物理地址为7E814H。

(16个字就是70A0H*10H+DDF6H+1EH,如果是32个字的话,则是70A0H*10H+DDF6H+3EH=7E834H)

16、执行下列指令序列后,完成的功能是将(DX,AX)的值左移4位。

MOVCL,04

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

17、JMP按转移地址范围的不同,分为短跳转和近跳转。

18、下面两个语句的区别在于X1只能赋值一次,X2可以多次赋值。

X1EQU1000H

X2=1000

19、用1条逻辑指令将AX中与BX中的对应位不相同的位均置为1XORAX,BX。

21、ASCII码是IBM-PC输入输出时采用的编码,ASCII的中文意思是美国信息交换标准代码,标准的ASCII码用8位二进制数来表示。

22、用指令的助记符、符号地址、标号和伪指令、宏指令等书写的程序的语言称为汇编语言,将汇编语言的源程序翻译成机器语言的程序为汇编程序。

23、8086CPU由BIU(总线接口单元)和EU(执行单元)两部分构成。

24、我们把与内存一一对应的用20位二进制数(或5位16进制数)表示的地址称为物理地址,它的计算公式为物理地址=16*段地址+偏移地址。

25、在段加偏移地址的寻址中,如果段寄存器为CS,则相应的偏移地址应由IP寄存器来提供。

26、在DEBUG上机调试程序时,存储器的地址表示为2F00:

1400,则该单元的段地址为2F00H,偏移地址为1400H,物理地址为30400H。

28、方向标志DF的作用是用来在串操作指令中控制自增和自减的方向,用于设置或消除该标志位的指令是STD和CLD,。

29、完成下列程序,从240H端口读取数据,测试其是否为20H,若不是则将241H端口清0,否则则转向Next。

Movdx,240H

INal,dx

CMPal,20h

JZNext

Movdx,240h

Moval,0

Outdx,al

……

Next:

……

30、已知:

(DS)=15F0H,(ES)=25F0H,(SS)=35F0H,(BX)=0670H,(SI)=1001H,(DI)=0B0H,(BP)=0150H,BUF的偏移地址是0900H。

计算下列指令源操作数的物理地址,指出寻址方式:

(1)MOVAX,BUF[BP+6];采用寄存器相对寻址方式,物理地址为56956h。

(2)CMPAX,ES:

[SI];采用寄存器间接寻址方式,物理地址为26F01H。

(3)MOVCX,BUF;采用直接寻址方式,物理地址为16800H。

(4)MOVAX,ES:

[BX+SI];采用基址变址寻址方式,物理地址为27571H。

(5)DECBUF[DI];采用寄存器相对寻址方式,物理地址为168B0H。

(6)MOVAX,BUF[BX+DI];采用相对基址变址寻址方式,物理地址为16620H。

31、过程的属性有NEAR 和 FAR。

32、指令中用来指出指令在程序中位置的符号地址是标号。

33、变量和标号的三个属性为段属性、偏移属性、类型属性。

34、下列程序段是比较AX,BX,CX中带符号数的大小,将最大数放在AX中。

请将程序填完整。

CMPAX,BX

JGELAB1

XCHGAX,BX

LAB1:

CMPAX,CX

JGELAB2

XCHGAX,CX

LAB2:

……

35、在使用串操作指令时,源串必须在数据段中,目的串必须在附加段中,源串作数和目的操作数不允许使用段超越。

36、CPU是通过I/O指令来实现与外部设备进行数据传送的。

37、内中断有三类中断源,分别为INTn、CPU出错、为调试程序设置的断点。

38、中断过程可分为四个步骤:

中断请求、中断响应、中断处理、中断返回。

39、执行IRET指令时,会依次将IP、CS、FLAGS弹出栈。

40、80X86中断命令寄存器的I/O端口地址为20H,中断屏蔽寄存器的I/O端口地址为21H。

41、可用DOS功能调用INT21H的功能号(AH)=25H来设置中断向量,用功能号AH=35H来获取中断向量。

42、168D=10101000B=0A8H=250Q。

43、在数据段中有以下定义:

ARRAY1EQU16H

ARRAY2DW16H

请指出下列指令的寻址方式:

MOVAX,ARRAY1;立即寻址方式

MOVAX,ARRAY2;直接寻址方式

44、若STR是字符串的首地址,将语句加上注解,并指出下列程序的功能。

LEABX,STR;把STR的偏移地址赋给BX寄存器

MOVCX,20;把20赋值给CX寄存器

LAB1:

CMP[BX],‘*’;把BX的ASCII值与*的ASCII值进行比较

JNZLAB2;判断是否相等

MOV[BX],‘$’;把BX的ASCII值与$的ASCII值进行比较

LAB2:

INCBX

LOOPLAB1;判断是否相等

HLT

程序的功能;将首址为STR长度为20的字符串中的*用$替换。

45、若物理地址为00038H的单元开始存放的双字为20001000H,00056H单元开始存放的双字为40003000H,则类型为14(十进制数)的中断向量的起始地址为38H或56,中断服务程序的入口地址(物理地址)为21000H。

46、PC机I/O设备的数据传送方式共有三种,分别是 查询 , 中断 ,DMA。

47、当键盘中断发生时,CPU能否响应由两个条件控制,一是 中断是否允许 二是当前中断级别是否比键盘中断级别高。

48、条件转移指令的目标地址应在本条件转移指令的下一条指令地址的 -128~127个字节范围内。

49、假设某程序执行前(CS)=0B234H,(IP)=5678H,则该程序的第一条指令的物理地址是0B79B8H,若第一条指令对应的机器码占3个字节,则第二条指令的物理地址是0B79BBH。

50、在用MASM5.0的DEBUG调试程序时,查看寄存器内容的命令为R,让程序仅执行当前IP所指的一条指令的命令

是T。

三、简答题

1、试计算58H+3CH的运算结果,并写出标志位OF、PF、CF、SF的内容。

2、8086具有哪些程序可见的寄存器,它们在程序设计中分别起什么作用?

答:

段寄存器

8086的段寄存器有4个16位寄存器,它们用于存放8086CPU当前可以访问的4个逻辑段的基址。

代码段寄存器CS划定并控制着程序区;数据段寄存器DS和附加段寄存器ES控制着数据区;而堆栈段寄存器SS对应着堆栈存储区。

通用寄存器

通用寄存器可分为两组:

数据寄存器,地址指针和变址寄存器。

数据寄存器包括AX,BX,CX和DX4个16位寄存器,它们中的每一个又可根据需要将高8位和低8位分成独立的两个寄存器来使用。

地址指针和变址寄存器包括SP,BP,SI,和DI。

控制寄存器

(1)指令指针IP

(2)标志寄存器FLAG

8086CPU设立了一个16位标志寄存器,共9个标志。

其中6个是状态标志,3个是控制标志。

状态标志

(a)CF进位标志

(b)PF奇偶标志

(c)AF辅助进位标志

(d)ZF零标志

(e)SF符号标志

(f)OF溢出标志

控制标志

(a)DF方向标志

(b)IF中断允许标志

(c)TF陷阱标志或单步操作标志

3、已知AX=0E87DH,BX=38ABH,若执行ADDBX,AX;则寄存器AX,BX,标志位CF、OF各为何值?

4、什么是中断类型码?

中断向量?

中断向量表?

在8086/8088微机系统中。

中断类型码和中断向量之间有什么关系?

答:

中断类型码:

其实就是中断号,对不同的中断服务程序不同的名称记号,以调用该中断程序.

中断向量:

指向中断服务程序的入口地址.一个向量代表的入口地址为4个字节.

中断向量表:

由于存在多个中断请求,相应有多个中断服务程序,即有多个存放这些程序的入口地址(即中断向量).为此系统在内存的特定区域安排一张中断向量表,专门存放所有的中断向量.此表即中断向量表.

以上三者关系:

中断向量=[中断号X4],其中方括号的含义是内存单元的内容.(即中断向量表刚好存放在内存绝对地址0开始的位置)。

5、简述CPU响应中断的条件。

答:

取决于中断允许触发标志IF的状态。

若IF=1,则响应中断的请求,暂停现行后续指令的执行,转去执行中断服务程序;若IF=0,则不会响应中断的请求。

6、在8086/8088微处理器在实模式下,存储器寻址为什么要分段?

举例说明存储单元的物理地址是如何形成的?

答:

在8086/8088中,寄存器只有16位,而地址线却有20位,故其最大寻址空间是1M。

用存储器分段的方法,解决在16位字长的机器里提供20位地址的问题。

在实模式下编程时,将存储器划分成段,每个段内的大小可达64KB,这样段内地址可用16位表示,实际上,可以根据需要决定段的大小。

这样将每一段的起始地址作为段地址,而将在段内相对于段起始地址的偏移值作为偏移地址,于是将段地址左移4位,再加上偏移地址就形成了存储器实际的物理地址。

如某存储单元的段地址和偏移地址为3017:

000A,则其物理地址=3017H*10H+000AH=3017AH。

7、逻辑右移指令SHR的格式、功能和使用说明?

8、设AX=1234H,BX=5678H,CX=8901H,SI=100H,SP的初始值=01A0H,问执行下述堆栈操作指令序列

PUSHCX

PUSHAX

PUSHBX

……

POPCX

POPSI

后,SP和SI的值等于多少?

答:

SP和SI的值分别等于19EH和1234H。

9、计算机对I/O端口编址时可以采用哪两种方法?

简述两种编址方式的优缺点?

10、画图说明下列语句分配的存储空间及初始化数值。

(1)ADB9,0AH,‘AB’,2dup(3,?

(2)BDW2DUP(123H,8),?

-5,‘23’,789DH

(3)XDB‘BIT’,62,6AH,2DUP(0,?

2DUP(7,9))

(4)YDW2DUP(0,2),?

-5,‘CD’,345H

11、根据以下要求,分别写出相应的汇编语言指令或指令序列。

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

Subax,bx

(2)将AX的内容逻辑左移5位。

Movcl,5shlax,cl

(3)将AX的内容,减去0520H和上次运算的借位。

Sbbax,520h

(4)将变量名TABLE的段地址送AX。

Movax,segtable

(5)将DI的高四位置为0。

Anddi,0fffh

(6)输出一个字节到61H号端口。

Out61h,al

(7)将SI和DI的内容互换。

Xchgsi,di

12、8086CPU是由EU和BIG组成,各部分的功能是什么?

这样设计的优点是什么?

答:

BIU主要功能是负责CPU与主存和I/O之间的信息传递。

EU的功能主要是控制和执行指令。

取指和执行指令这两个步骤由两个独立的部件来完成。

当EU执行某条指令时,BIU同时完成从主存中预取后继指令,两个部件并行工作,提高了指令的执行速度。

13、循环控制指令LOOPNZ/LOOPNE的格式、功能和使用说明?

答:

指令的汇编格式:

LOOPNZ/LOOPNElabel

指令的基本功能:

①(CX)←(CX)-1

 ②若ZF=0且(CX)≠0,则(IP)←(IP)当前+位移量,否则循环结束。

指令的特殊要求:

循环指令都是短转移格式的指令,也就是说,位移量是用8位带符号数来表示的,转向地址在相对于当前IP值的-128~+127字节范围之内。

14、串传送指令REPMOVSB的格式、功能和使用说明?

15、简述指令MOVSI,DATA和MOVSI,OFFSETDATA之间的区别?

答:

MOVSI,DATA是将DATA的内容送入SI寄存器;

MOVSI,OFFSETDATA是将SI寄存器指向DATA,也就是将DATA的偏移地址送入SI。

16、强制属性操作符会改变变量的定义属性吗?

答:

不会,它们只是临时改变变量的属性。

17、外设与CPU和存储器的通信是通过外设接口进行的,每个外设接口包含哪些寄存器,以及这些

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

当前位置:首页 > 法律文书 > 辩护词

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

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