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

上传人:b****6 文档编号:8889589 上传时间:2023-05-15 格式:DOCX 页数:15 大小:22.21KB
下载 相关 举报
汇编语言程序设计复习附答案完整版.docx_第1页
第1页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第2页
第2页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第3页
第3页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第4页
第4页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第5页
第5页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第6页
第6页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第7页
第7页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第8页
第8页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第9页
第9页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第10页
第10页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第11页
第11页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第12页
第12页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第13页
第13页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第14页
第14页 / 共15页
汇编语言程序设计复习附答案完整版.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

汇编语言程序设计复习附答案完整版.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)

13.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单元保存。

4.

答:

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位数据相加。

5.

6.答:

书上221页

7.

8.

9.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-2023 冰点文库 网站版权所有

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