汇编语言程序设计复习附答案完整版教学文案文档格式.docx

上传人:b****3 文档编号:16584867 上传时间:2022-11-24 格式:DOCX 页数:10 大小:22.33KB
下载 相关 举报
汇编语言程序设计复习附答案完整版教学文案文档格式.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

13.指令JMP 

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 

20.已知BX=2000H,SI=1234H,则指令MOV 

AX,[BX+SI+2]的源操作在(A 

)中。

  

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

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

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

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

21.执行如下程序:

    MOV 

AX,0

BX,1

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 

X

    SHL 

AL,1

    DEC 

AL

BYTE 

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 

    

(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 

$-DA2

DA5 

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 

COUNT,?

    LEA 

BX,BLOCK-2

    MOV 

CX,RESULT

    XOR 

AX,AX

    GOON:

ADD 

BX,2

    CMP 

AX,[BX]

    JAE 

NEXT

    NEXT:

LOOP 

GOON

RESULT+2,AX

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

    RESULT+2字存储单元的内容=_MAX(X1, 

X2, 

… 

XN)_____

    BX=__100H 

(COUNT-1)____

    程序循环次数=__COUNT____

五、程序填空题

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

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

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

    LEA 

BX,TABLE 

CX,10 

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个字节数据。

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

CX,32H

    LEA 

SI,BEG

DI,SI

    

(1)ADDDI99

   DON:

MOV 

AL,[SI]

    

(2)XCHGAL,[DI]

[SI],AL

    (3)INCSI

    DEC 

DI

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

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

MOVCX,10

LOP1:

MOVAH,1

INT21H

PUSHAX

LOOPLOP1

LOP2:

POPDX

MOVAH,2

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, 

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

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

答:

DATA 

SEGMENT 

SQTAB 

DB 

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

100,121,144,169,196,225 

12 

DB?

DATA 

ENDS 

CODE 

ASSUME 

CS:

CODE,DS:

START 

PROC 

PUSH 

XOR 

AX,AX 

MOV 

AX,DATA 

DS,AX 

BX,OFFSET 

AL,A 

XLAT 

B,AL 

RET 

START 

ENDP 

CODE 

ENDS

END 

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