汇编语言程序设计课程.docx

上传人:b****5 文档编号:11955753 上传时间:2023-04-16 格式:DOCX 页数:33 大小:32.79KB
下载 相关 举报
汇编语言程序设计课程.docx_第1页
第1页 / 共33页
汇编语言程序设计课程.docx_第2页
第2页 / 共33页
汇编语言程序设计课程.docx_第3页
第3页 / 共33页
汇编语言程序设计课程.docx_第4页
第4页 / 共33页
汇编语言程序设计课程.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

汇编语言程序设计课程.docx

《汇编语言程序设计课程.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计课程.docx(33页珍藏版)》请在冰豆网上搜索。

汇编语言程序设计课程.docx

汇编语言程序设计课程

汇编语言程序设计复习参考题一

一、填空(每空1分,共20分)。

1、8086CPU有_20_根地址线,可直接寻址_1M_字节的存储空间。

2、-1的8位二进制补码是__0FFH_。

3、IBM-PC系列微机可访问的外设端口的地址范围是从___0___到__3FFH__。

4、在8086CPU中,当_M/-IO=1时,访问存储器,当_M/-IO=0时,访问I/O端口。

5、在8086CPU中,对I/O端口的寻址有_存储器编址方法_和_I/O端口编址方法_。

6、在8086CPU指令系统中,要获得数组变量所占的总字节数,使用__SIZE__运算符,要获得数组变量的元素个数,使用_LENGTH_运算符,要获得变量的类型数字,使用__TYPE__运算符。

7、符号‘$’代表___当前位置计数器___的现行值,定位伪指令ORG是把某一个值赋给__当前位置计数器__,表示以给定值作起始偏移量。

8、若一个数据块的起始地址为70A0H:

DDF6H,则这个数据块起始地址的实际地址为__7E7F6H__。

9、如果一条指令使用标号,那么该标号就是这条指令的__首__地址,且它代表该指令的__第一字节__的地址。

10、在宏汇编语言中,宏指令的使用过程是__定义__、__调用__、__展开__。

二、单项选择题(每空1分,共20分)

1、两个非组合型BCD码数据相加后,执行加法校正指令AAA是,首先检查是否需要校正。

需要校正的条件有:

AF=1、CF=L和(D)。

A.AL中高四位数的值>9B.AL中高四位数的值<9

C.AL中低四位数的值<9D.AL中低四位数的值>9

2、8086的I/O空间段寄存器使用的是(B)

A.DSB.没必要C.ESD.SS

3、I/O端口间接寻址方式是将被寻址的端口地址存放在(A)

A.DXB.AXC.BXD.CX

4、8086/8088CPU的输入指令是将输入设备的一个端口中的数据传送到(B)

A.IPB.AL/AXC.BPD.BX/CX

5、I/O设备的数据端口是(C)

A.32B.64C.8/16D.16/32

6、为了保证用户程序执行完后能正常返回DOS,常使用的一种方法是在程序执行的最后一条指令为RET。

但使用该方法要在程序执行前进行一系列的保护操作(B)

A.MOVAX,DATA

MOVDS,AX

MOVES,AX

B.PUSHDS

MOVAX,0

PUSHAX

C.MOVAH,4CH

INT21H

D.MOVAX,DATA

MOVDS,AX

PUSHAX

7、不用立即数,也不用任何存储单元中的数据,能完成AX←-1,BX←0,CX←1的程序段是(A)

A.XORAX,AX

MOVBX,AX

INCAX

MOVCX,AX

NEGAX

B.ORAX,AX

MOVBX,AX

INCAX

MOVCX,AX

NEGAX

C.ANDAX,AX

MOVBX,AX

INCAX

MOVCX,AX

NEGAX

D.XORAX,AX

MOVBX,AX

DECAX

MOVCX,AX

NEGAX

8、DADW‘AB’,‘CD’

DB1DB‘X’

……

则执行指令语句XCHFDB1,BYTEPTRDA后,结果DB1中的内容是(B)

A.‘A’B.42HC.41HD.’C’

9、下列伪指令中可以用来定义变量的是(A)

A.TYPEB.DBC.WORDD.BYTE

10、在汇编过程中不产生指令代码,只用来指示汇编程序如何汇编的指令是(B)

A.宏指令B.伪指令C.机器指令D.汇编指令

11、下面伪指令定义后,其变量对应的物理地址是(A)

ORG0100H

BUFDB10DUP(?

CONDW2DUP(?

A.BUFDS:

0100H

CONDS:

010AH

B.BUFDS:

010AH

CONDS:

0101H

C.BUFDS:

0110H

CONDS:

011CH

D.BUFDS:

0100H

CONDS:

0101H

12、在ASSUME伪指令设定了段寄存器后,无需在程序段中用指令完成赋值的寄存器是(A)

A.CSB.DSC.ESD.AX

13、指令代码的地址存放在寄存器(C)中

A.DS,SIB.ES,DIC.CS,IPD.BX,BP

14、指令PUSHAX的正确操作是(C)

A.SP←SP+1

AH→(SP)

SP←SP+1

AL→(SP)

B.SP←SP-1

AL→(SP)

SP←SP-1

AH→(SP)

C.SP←SP-1

AH→(SP)

SP←SP-1

AL→(SP)

D.以上均不正确

15、在取MOVBX0125H指令的源操作数时,使用的逻辑地址时(A)

A.CS:

IPB.DS:

0125HC.ES:

0125HD.无

16、在8086/8088中,可以分为两个独立的8位寄存器使用的寄存器是(B)

A.AX,DI,BP,SIB.AX,BX,CX,DX,F

C.SI,DI,BP,SP,IPD.CS,ES,DS,SS

17、设SP的初值为200H,执行指令”PUSHAX”后,SP的值为(D)

A.198HB.200HC202HD.1FEH

18、伪指令“ENDP”告诉汇编程序(B)

A.宏定义结束B.过程定义结束C.段定义结束D.用户程序结束

19、ADDAL,BL

AAA

设执行前(AX)=0535H,(BL)=39H,则执行上述指令后,AX中的内容为(A)

A.0604HB.0574HC.0104HD.056EH

20、设(SS)=1E56H,(SP)=38H,则执行指令“RET6”后,SP的值以及SP所指向的存储单元的物理地址分别是(D)

A.3FH,1E5A0HB.42H,1E5C6H

C.39H,1E5E2HD.42H,1E5A2H

三、判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。

每题3分,共15分)

1、MOVAX,0FFH

MOVCS,AX(×)

改:

MOVAX,0FFH

MOVDS,AX

2、MOVAX,100

ADDAX,[BX]

DAA(×)

改:

MOVAL,100

ADDAL,[BX]

DAA

3、…

A1DB10H

A2DB?

CMPA1,A2(×)

改:

A1DB10H

A2DB?

MOVAL,A1

CMPAL,A2

4、DATA0DB100

MOV[DATA0],AX

PUSHAX

…(×)

改:

DATA0DW100

MOV[DATA0],AX

PUSHAX

5、MOVAL,01H

OUT2F8H,AL(×)

改:

MOVAL,01H

MOVDX,2F8H

OUTDX,AL

四、写出下面程序段的运行结果或功能(20分)

1、DESGSEGMENTAT1000H

ORG6

VAR1DB2,8

ORG$+2

VAR2DW569AH

DB‘1234’

DESGENDS

画出上面程序的内存分配图:

答案:

2

8

-

-

9AH

56H

‘1’

‘2’

‘3’

‘4’

1000:

0006H

2、MOVDL,31H

MOVAH,2

INT21H

指出该程序段的功能:

(2分)

答案:

显示数字1

3、CLC

MOVCX,0FFFFH

INCCX

执行该程序段后,CX=__0__,ZF=_____1____。

 

4、MOVAL,100

CMPAL,100

执行该程序段后,AL=_____100____,CF=_____0_____。

 

5、下列程序段完成什么功能?

DATA1DB300DUP(?

DATA2DB100DUP(?

……..

MOVCX,100

MOVBX,200

MOVSI,0

MOVDI,0

L1:

MOVAL,DATA1[BX][SI]

MOVDATA1[DI]

INCSI

INCDI

LOOPL1

答案:

将DATA1的后100个字节传输到DATA2开始的存储单元中。

四、编程(20分)

计算表达式Z=(X

+2Y+Y

)/2,设X,Y均为单字节正整数,结果Z为字数据。

写完整的程序,完成给定的功能。

(设X=23H,Y=0F6H)

答案:

TITLECALCULATEZ=(X

+2Y+Y

)/2

DATASEGMENT

XDB23H

YDB0F6H

ZDW?

DATAENDS

STACKSEGMENTPARASTACK‘stack’

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

STARTPROCFAR

BEGIN:

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAL,X

MOVAH,0

MOVBL,Y

MOVBH,0

MULAL

MOVCX,AX

MOVAX,BX

MULAL

ADDBX,BX

ADDAX,BX

ADDAX,CX

DIVAX,2

MOVZ,AX

RET

STARTENDP

CODEENDS

ENDBEGIN

汇编语言程序设计复习参考题二

一、填空(每空1分,共20分)。

1、在PC系列微机中,从00000H至003FFH内存中存放着_中断向量表___。

2、设堆栈指针(SP)=2200H,此时若将AF、AX、BX、CX依次压入堆栈后,(SP)=_21F8H_。

1、8086/8088CPU寻址外设端口的两种寻址方式为直接寻址和间接端口寻址。

2、凡地址能被_16_整除的单元可定义为段的起始单元。

3、程序段MOVAL,64H

MOVBL,-1

CMPAL,BL

ADDAL,AL

执行后,(AL)=_C8H_,(BL)=_0FFH_,CF=_0__。

4、程序段

MOVAL,40H

ADDAL,AL

ADCAL,AL

ADCAL,AL

执行后,(AL)=_01H_,CF=__0___。

5、在8086/8088CPU串操作寻址中,隐含使用变址寄存器SI、DI。

若_DF=0_时,SI、DI自动增量,否则自动减量。

6、在8086/8088CPU基址变址寻址操作中,当基址寄存器选用BP时,隐含使用的段寄存器是__SS___,当选用BX时,隐含使用的段寄存器是__DS__。

7、OFFSET用于获得一个变量或标号在其段内的___偏移量___。

8、在8086/8088指令系统中,__组合型BCD码__是一个字节表示两个BCD码,__非组合型BCD码_是一个字节的低4位表示一个BCD码,高4位通常为0000或0011等。

9、在用指令MUL进行字节乘法时,一个操作数隐含使用寄存器_AL_,运算所得结果隐含地存放在寄存器_AX__。

10、执行CALL指令,对标志寄存器_无影响_。

11、在编写子程序时,必须注意一个子程序执行的最后一条指令一定是还回指令__RET_,用以还回到调用该子程序的断点处。

二、单项选择题(每空1分,共20分)

1、二进制数10000000为带符号的补码时,表示(A).

A.-128B.-0C.-127D.128

2、在计算机内,字符均用ASCII码表示,一个字符在存储器中占用(B)

A.4BITB.1个字节C.一个字D.一个双字

3、在计算机内,机器数均用()来表示

A.原码B.反码C.补码D.ASCII码

4、BCD码是二进制编码的十进制数,一个16位的十进制数或非组合BCD码在机内要占用(C)个字节单元

A.4B.8C.16D.32

5、8086CPU产生存储单元的物理地址是由(B)组合产生的

A.CS和IPB.段基址和偏移地址C.SS和SPD.有效地址和相对地址

6、标志位(D)用于控制串操作的方向(增量或减量)

A.AFB.PFC.IFD.DF

7、8086CPU访问(读/写)一次存储器或I/O接口所用的时间,称为一个(C)

A.基本指令执行时间B.时钟周期C.总线周期D.指令周期

8、8086的基本总线周期长度是(D)(不含等待)

A.3TB.TIC.一个指令周期D.4T

9、8086CPU寻址I/O端口是,若要访问1024个字节端口或512个字节端口时,至少要使用(C)根地址线

A.4B.8C.10D.16

10、指令PUSHDS的目的操作数是(D)寻址方式

A.寄存器B.寄存器间接C.直接D.隐含(固定)

11、已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H,指令LEAAX,[SI]执行后,(AX)=(B)

A.0002HB.0004HC.02HD.C302H

12、已知(AL0=A3H,指令CBW执行后,(AX)=(B)

A.00A3HB.FFA3HC.0FA3HD.A300H

13、(D)是一种能被计算机识别和执行的语言

A.汇编语言B.高级语言C.算法语言D.机器语言

14、八位微计算机用补码所能表示的数的范围是(A)

A.-128~127B.-127~127C.0~255D.0~256

15、八位微处理器的地址线AB为16条,则能组合成(A)种不同的地址码

A.2

B.2

-1C.2

D.2

-1

16、两个八位二进制数00000110和11111100相加,则(C)成立

A.视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,发生溢出

B.视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,发生溢出

C.视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,不发生溢出

D.视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,不发生溢出

17、8086CPU内部由两个独立的工作部件构成,它们是(A)

A.执行部件和总线接口部件B.执行部件和地址、数据缓冲器

B.运算器和控制器C。

运算器和寄存器阵列

18、已知(AL)=36H,(BL)=02H,执行指令MULBL后,AH和AL的值分别为(B)

A.(AH)=03H,(AL)=2AHB.(AH)=00H,(AL)=6CH

C.(AH)=FFH,(AL)=6CHD.(AH)=03H,(AL)=6CH

19、一个存储单元的实际地址为25342H,若其段首址为234E0H,则其段内偏移地址为(B)

A.1F41HB.1F42HC.5432HD.01FAH

20、与DB‘A’,‘B’等效的指令是(A)

A.DB‘BA’B.DW‘BA’C.DW‘AB’D.DW‘A’,‘B’

三、判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。

每题3分,共15分)

1、MOVAL,512(×)改:

MOVAX,258

2、SALBX,2(×)改:

SALCL,2

3、ORAX,504HAND208H(√)

4、MOVDS,0200H(×)改:

MOVAX,0200H

MOVDS,AX

5、ADDAX,BX[SI](×)

改:

ADDAX,[BX][SI

四、写出下面程序段的运行结果或功能(每空2分,共15分)

1、已知(SP)=100H,执行指令

POPAX

PUSHCX

PUSHDX后,则(SP)=0FEH

2、已知(BX)=128,执行指令

DECBX

MOVAX,BX

NEGAX

INCAX

ADDBX,AX后

则(BX)=0001H(AX)=FF82H

3、执行指令

MOVAL,85H

SUBAL,36H

DAS

MOVBH,AL

ADDAL,36H后

则(AL)=7FH(BH)=___49H______

五、编程(30分)

1、试编写一汇编程序段,完成下面数学表达式的功能。

W=X+Y–Z(W,X,Y,Z均为双字变量)

答案:

MOVAX,X

ADDAX,Y

MOVBX,X+2

ADCBX,Y+2

SUBAX,Z

SBBBX,Z+2

MOVW,AX

MOVW+2,BX

2、设在数据段,附加段,和堆栈段中,分别定义了字变量X、Y、Z,试编制一完整的汇编语言程序,计算:

W=X+Y+Z(设X=0250H,Y=0660H,Z=0320H)

答案:

TITLECALCULATEW=X+Y+Z

DATASEGMENT

XDW0250H

WDW?

DATAENDS

STACKSEGMENTPARASTACK‘stack’

ZDW0320H

DB100DUP(?

STACKENDS

EXTRASEGMENT

YDW0660H

EXTRAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

EXTRA,SS:

STACK

BEGIN:

MOVAX,DATA

MOVDS,AX

MOVAX,ERTRA

MOVES,AX

MOVAX,X

ADDAX,ES:

Y

ADDAX,SS:

Z

MOVW,AX

MOVAH,4CH

INT21H

CODEENDS

ENDBEGIN

汇编语言程序设计复习参考题三

一、填空(20分,每空1分)。

1、当由逻辑地址转换为物理地址时,是将段寄存器的内容左移(4)位,再加上偏移量形成(20)位的物理地址。

2、现对一个字节/字的数求反用指令(NOT)。

3、JMP指令的段内直接寻址的目标代码为二字节长,该指令首字节偏移量为200H,那么正的相对转移能到达的最远的偏移量是(281H),负的相对转移能到达的最远的偏移量是(182H)。

4、表示宏定义结束和重复汇编结束是用伪指令(ENDM)实现。

5、在debug状态下装入可执行文件后,程序的目标代码和数据已全部送入内存指定单元,此时DS、ES将指向(程序段前缀的段基值)。

6、写出下列指令中存储器操作数的物理地址计算表达式:

(1)MOVAL,[SI]

则___PA=DS*16+(SI)______

(2)SUB40H[BX],AX

则____PA=DS*16+(40H+BX)_____

(3)INCSS:

5[BX][SI]

则____PA=SS*16+(5+BX+SI)_______

7、在8086/8088CPU中,可用与作地址指针的寄存器有(BX),(BP),(SP),(SI)和DI。

8、8086/8088在程序中表达一个存储单元地址是用逻辑地址,逻辑地址是由(段基址)和(偏移地址)两部分组成。

9、若CS=5200H,某条指令第一字节物理地址为5A230H,当CS=7800H时,该条指令第一字节物理地址是(80230H)。

10、输入输出的控制方式有(程序控制)、(中断)、(DMA)。

二、单项选择题(20分)

1、执行下列指令时,需要使用段寄存器DS的是(B)

A.PUSHFB.MOV[BX],AXC.SAHFD.MOV[BP],CX

2、SP=F000H,BH=20H,BL=08H,执行PUSHBX指令后(D)

A.SP=0F002H,(0F001H)=20H,(0F002H)=08H

B.SP=0EFFEH,(0EFFFH)=08H,(0EFFEH)=20H

CSP=0EFFFH,(0F000H)=20H,(0F002H)=08H

D.SP=0EFFEH,(0EFFFH)=20H,(0EFFEH)=08H

3、下列语句有语法错误的语句是(A)

A.MOVAX,[BX][BP]

B.ADDAX,[BX]

C.CMP[BX],0FH

D.LEASI,20H[BX]

3、取MOVBX,0123H指令的源操作数时,使用的逻辑地址是(C)

A.无B.DS:

0123HC.CS:

IPD.ES:

0123H

5、两个非组合型BCD码数据相减后,执行减法校正指令AAS时,首先检查是否需要校正。

需要校正的条件有(D)

A.AL中的数>9,且AF=1

B.AL中低四位的数>9,且AF=1

C.AL中的数>9,或AF=1

D.AL中低四位的数>9,或AF=1

6、用REPNECMPSB指令作两个字符串比较时,如果CX≠0,比较结束,原因是(

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

当前位置:首页 > 工程科技 > 能源化工

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

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