汇编语言程序设计复习附答案完整版.docx

上传人:b****6 文档编号:4812280 上传时间:2022-12-09 格式:DOCX 页数:10 大小:21.81KB
下载 相关 举报
汇编语言程序设计复习附答案完整版.docx_第1页
第1页 / 共10页
汇编语言程序设计复习附答案完整版.docx_第2页
第2页 / 共10页
汇编语言程序设计复习附答案完整版.docx_第3页
第3页 / 共10页
汇编语言程序设计复习附答案完整版.docx_第4页
第4页 / 共10页
汇编语言程序设计复习附答案完整版.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

汇编语言程序设计复习附答案完整版.docx

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

汇编语言程序设计复习附答案完整版.docx

汇编语言程序设计复习附答案完整版

一、选择

1.下面指令执行后,改变AL寄存器内容的指令是(D)。

A.TESTAL,02HB.ORAL,AL

C.CMPAL,BLD.ANDAL,BL

2.对寄存器AX的内容乘以4的正确指令序列是(B)。

A.SHRAX,1/SHRAX,1B.SHLAX,1/SHL,AX,1

C.ROLAX,1/ROLAX,1D.RCRAX,1/RCRAX,1

3.设DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作数的物理地址是(A)

A.85B92HB.86192HC.BB690HD.12169H

4.指令JMP FAR PTR DONE属于C

  A.段内转移直接寻址

  B.段内转移间接寻址

  C.段间转移直接寻址

  D.段间转移间接寻址

5.将DX的内容除以2,正确的指令是   C

  A.DIV 2  B.DIV DX,2  C.SAR DX,1  D.SHL DX,1

6.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D)。

A.CMPB.SUBC.ANDD.MOV

7.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是(B)。

A.名字项B.操作项C.操作数项D.注释项

8.假设执行ADD指令后AX=006EH,再执行AAA指令,AX中的值是(B)

A.14HB.0104HC.74HD.04H

9.用MOV指令将十进制数89以非压缩BCD码格式存入AX,可使用的指令是(D)

A.MOVAX,89B.MOVAX,0809

C.MOVAX,89HD.MOVAX,0809H

10.下列语句中能与“DA1DB32H,34H”语句等效的是(A)

A.MOVDA1,32HB.MOVDA1,32

C.MOVWORDPTRDA1,3234HD.MOVWORDPTRDA1,‘24’

MOVDA1+1,34HMOVDA1+1,34

11.使用DOS功能调用时,子程序的编号应放在寄存器中(A)

A.AHB.ALC.AXD.任意指定

12.下列语句中能实现留空8个字节单元的语句是(D)

A.DA1DT?

B.DA2DW?

,?

C.DA3DD?

D.DA4DQ?

13.指令JMP FAR PTR DONE属于C

  A.段内转移直接寻址

  B.段内转移间接寻址

  C.段间转移直接寻址

  D.段间转移间接寻址

14.下列叙述不正确的是 B 

A.在不改变堆栈段寄存器的情况下,堆栈大小为64KB

B.紧跟设置堆栈段寄存器指令可以是设置堆栈指针以外的任何指令

C.中断服务程序的返回地址在堆栈中

D.堆栈中数据存放的特点是先进后出

15.一个有128个字的数据区,它的起始地址为12ABH:

00ABH,请给出这个数据区最末一个字单元的物理地址是  C 

  A.12CSBH  B.12B6BH  C.12C59H  D.12BFEH

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

  A.MOV AL,[BX+SI]

  B.JMP SHORT DONI

  C.DEC [BX]

  D.MUL CL

17.在进行二重循环程序设计时,下列描述正确的是 A 

  A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

  B.外循环初值应置外循环之内;内循环初值应置内循环之内

  C.内、外循环初值都应置外循环之外

  D.内、外循环初值都应置内循环之外,外循环之内

18.条件转移指令JNE的测试条件为 A  

  A.ZF=0  B.CF=0  C.ZF=1  D.CF=1

19.将DX的内容除以2,正确的指令是  C 

  A.DIV 2  B.DIV DX,2  C.SAR DX,1  D.SHL DX,1

20.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(A )中。

  

  A.数据段中偏移量为3236H的字节

  B.附加段中偏移量为3234H的字节

  C.数据段中偏移量为3234H的字节

  D.附加段中偏移量为3236H的字节

21.执行如下程序:

    MOV AX,0

    MOV BX,1

    MOV CX,100

    A:

ADD AX,BX

    INC BX

    LOOP A

    HLT

    执行后(BX)= C 

  A.99  B.100  C.101  D.102

22.上题的程序执行后(AX)= B 

  A.5000  B.5050  C.5100  D.5150

23.在下列指令中,__D____指令的执行会影响条件码中的CF位。

  

  A.JMP NEXT  B.JC NEXT

  C.INC BX  D.SHL AX,1

24.下面指令序列执行后完成的运算,正确的算术表达式应是D

    MOV AL,BYTE PTR X

    SHL AL,1

    DEC AL

    MOV BYTE PTR Y,AL

  A.y=x*2+1  B.x=y*2+1  C.x=y*2-1  D.y=x*2-1

25.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。

  B 

  A.占内存空间小,但速度慢

  B.占内存空间大,但速度快

  C.占内存空间相同,速度快

  D.占内存空间相同,速度慢

26.在程序执行过程中,IP寄存器中始终保存的是  B 

  A.上一条指令的首地址

  B.下一条指令的首地址

  C.正在执行指令的首地址

  D.需计算有效地址后才能确定地址

二、简答

1.假定(DX)=10111001B,(CL)=3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。

(3分)

    

(1)SHR DX,1

    

(2)RCR DL,1

    (3)RCL DX,CL

答:

(1)005CH

(2)00DCH(3)05CCH 

2.写出完成下述功能的程序段:

(8分)

    

(1)传送25H到AL寄存器

    

(2)将AL的内容乘以2

    (3)传送15H到BL寄存器

    (4)AL的内容乘以BL的内容

    并请写出最后(AX)=?

答:

(1)MOVAL,25H

(2)SHLAL,1

(3)MOVBL,15H

(4)MULBL

AX=612H

3.指出下列指令的错误原因。

(14分)

(1)MOVBX,AL操作数类型不同

(2)MOV256,CX

(3)POPCS

(4)MUL45H

(5)MOVDS,2000H

(6)JMPWORDPIRLOO

(7)INAL,3F8H

5.设某数据段:

DATASEGMENT

ORG20H

NUM1=8

NUM2=NUM1+10H

DA1DB'COMPUTER'

DB0AH,0DH

COUNTEQU$-DA1

DA2DW'CO','MP','UT','ER'

DATAENDS

试回答:

(1)DA1的偏移地址是什么?

(2)COUNT的值是什么?

(3)DA2+5字节单元的内容是什么?

答:

(1)0020H

(2)002AH-0020H=0AH=10

(3)”U”

6.某程序段如下:

MOVDX,0EFADH

MOVAX,1234H

MOVCL,4

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

上面的程序段执行完后,DX、AX的内容是什么?

DX=FAD0H

AX=2340H

三、填空

1.计算机语言分为机器语言、汇编语言和高级语言。

2.23D=10111B,100101011B=12BH。

3.8086系统的操作数分为立即操作数、寄存器操作数和存储器操作数三种类型。

4.8086CPU内部共有14个16位的寄存器。

5.汇编语言的编译程序一般用Edit,调试程序一般用debug。

四、程序分析

1.现有如下程序段:

    DATA SEGMENT 

    ORG 0020H 

    DA1 DW 12H,23H 

    DA2 DB 11H,21H 

DA3 EQU 1234H

DA4 EQU $-DA2

DA5 DB 31H,32H

DATA ENDS

请回答:

(1)该程序段已占有的存储字节数是多少?

  

(2)符号名DA4的值是多少?

符号名DA5的值是多少?

答:

(1) 该程序段已占有的存储字节数是8个字节。

    

(2) 符号名DA4的值为2,符号名DA5的值是0026H。

 

2.阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。

    ORG 100H

    BLOCK DW X1,X2,…,XN

    COUNT EQU($-BLOLOK)/2

    RESULT DW COUNT,?

    LEA BX,BLOCK-2

    MOV CX,RESULT

    XOR AX,AX

    GOON:

ADD BX,2

    CMP AX,[BX]

    JAE NEXT

    MOV AX,[BX]

    NEXT:

LOOP GOON

    MOV RESULT+2,AX

    程序段执行完,回答下述问题

    RESULT+2字存储单元的内容=_MAX(X1, X2, … XN)_____

    BX=__100H + 2×(COUNT-1)____

    程序循环次数=__COUNT____

五、程序填空题

1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。

如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。

请在程序中的空格处填入适当指令使其完整。

    LEA BX,TABLE 

    MOV CX,10 

    MOV SUM,AX 

    MEXT:

(1)ADDAL,[BX] 

    ADC AH,0 

    JNC DON

(2)MOVAX,SUM

JC END0

DON:

INC BX

(3)LOOPNEXT

ENDO:

HLT

2.BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。

请在程序中的空格处填入适当的指令使其完整。

    MOV CX,32H

    LEA SI,BEG

    MOV DI,SI

    

(1)ADDDI99

   DON:

MOV AL,[SI]

    

(2)XCHGAL,[DI]

    MOV [SI],AL

    (3)INCSI

    DEC DI

    LOOP DON

    HLT

3.下面程序段完成用单个字符输入的1号功能调用,从键盘输入10个字符,然后用2号功能调用以相反的顺序显示输出这10个字符。

请在空白处添上适当的指令(每一空白处只添一条指令)。

MOVCX,10

LOP1:

MOVAH,1

INT21H

PUSHAX

LOOPLOP1

MOVCX,10

LOP2:

POPDX

MOVAH,2

INT21H

LOOPLOP2

4.下面程序段完成将以BUFF为首地址的内存区域全部存储0FFH数据。

请在空白处添上适当的指令(每一空白处只添一条指令)。

BUFFDB20HDUP(?

LEDDI,BUFF

MOVAX,0FFFFH

MOVCX,10H

CLD

REPSTOSW

六、编制程序题

1.试编写一个汇编语言子程序,要求将包含任意字符、以0结尾的字符串中的小写字母转换成大写字母。

assumecs:

code,ds:

data

datasgsegment

db'BeginnersAll-purposeSymbolicInstructionCode.',0

datasgends

codesgsegment

begin:

movax,data

movds,ax

movsi,0

callletterc

movah,4ch

int21h

letterc:

pushax

s:

moval,[si]

movah,0

movcx,ax

jcxzreturn

cmpal,61h

jbnext

cmpal,91h

janext

andal,11011111b

mov[si],al

next:

incsi

jmpshorts

return:

popax

ret

codesgends

endbegin

 

2.写一程序段,求双字长数DX∶BX的相反数。

NEG DX      

NEG AX      

SBB DX, 0

 

3.设在内存单元SQTAB首址开始存放了0~15的平方数表。

要求用直接查表法编一程序,求出A单元中给定数(<=15=的平方值送B单元保存。

答:

DATA SEGMENT  

    SQTAB DB 0,1,4,9,16,25,36,49,64,81      

DB 100,121,144,169,196,225      

A DB 12      

B DB?

  

    DATA ENDS  

    CODE SEGMENT  

    ASSUME CS:

CODE,DS:

DATA      

START PROC FAR      

PUSH DX      

XOR AX,AX      

PUSH AX  

    MOV AX,DATA      

MOV DS,AX  

    MOV BX,OFFSET SQTAB      

MOV AL,A      

XLAT  

    MOV B,AL     

RET  

    START ENDP      

CODE ENDS

END START 

4.编写一个子程序,对两个128位数据相加。

答:

书上221页

5.编写程序求:

X+10H(X<0))

Y=32X(0≤X≤10)

X-90H(X>10)

 

STACKSEGMENTPARASTACK‘STACK’

DB100DUP(0)

STACKENDS

DATASEGMENT

XDW?

YDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,X

CMPAX,0

JGECASE23

ADDAX,10H;第一种情况的计算结果

JMPRESULT

CASE23:

CMPAX,10D

JGCASE3

MOVBX,30D

IMULBX;第二种情况的计算结果

JMPRESULT

CASE3:

SUBAX,190H;第三种情况的计算结果

RESULT:

MOVY,AX;结果保存到变量Y中

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

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

当前位置:首页 > 高中教育 > 高考

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

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