《汇编语言》练习册答案Word文档下载推荐.docx

上传人:b****2 文档编号:438336 上传时间:2023-04-28 格式:DOCX 页数:34 大小:53.51KB
下载 相关 举报
《汇编语言》练习册答案Word文档下载推荐.docx_第1页
第1页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第2页
第2页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第3页
第3页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第4页
第4页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第5页
第5页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第6页
第6页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第7页
第7页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第8页
第8页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第9页
第9页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第10页
第10页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第11页
第11页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第12页
第12页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第13页
第13页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第14页
第14页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第15页
第15页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第16页
第16页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第17页
第17页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第18页
第18页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第19页
第19页 / 共34页
《汇编语言》练习册答案Word文档下载推荐.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《汇编语言》练习册答案Word文档下载推荐.docx

《《汇编语言》练习册答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《汇编语言》练习册答案Word文档下载推荐.docx(34页珍藏版)》请在冰点文库上搜索。

《汇编语言》练习册答案Word文档下载推荐.docx

(BCD2)=89,(BCD2+1)=27

欲使以下指令序列实现,(BCD3)(BCD1)+(BCD2)的功能(请在横线上添上适当的语句)

MOVAL,BCD1

ADDAL,BCD2

DAA

MOVBCD3,AL

MOVAL,BCD1+1

ADCAL,BCD2+1

MOVBCD3+1,AL

二、试根据以下要求写出相应的汇编语言指令

1、把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。

ADDDX,BX

2、用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。

ADDAL,[BX+SI]

3、用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。

ADD[BX+0B2H],CX

4、用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中。

ADD[0524H],2A59H

5、把数0B5H与(AL)相加,并把结果送回AL中。

ADDAL,0B5H

 

三、图示题:

(第1题10分,第2、3题,每题5分,共20分)

1、已知堆栈寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP的内容变化,过程示意图(标出存储单元的物理地址)。

FFAB0H

执行PUSH前

2、画出以下指令汇编后存储情况示意图。

DATA_BYTEDB10,4,10H

DATA_WORDDW100,100H,-5

DATA-DWDD3*20,0FFFDH

DATA_BYTE

0A

04

10

DATA_WORD

64

00

FB

FF

DATA_DW

3C

FD

3、画出以下指令汇编后存储情况示意图

ARRAY1DB2DUP(0,1,2,?

ARRAY2DB100DUP(?

ARRAY1

01

02

ARRAY2

--

·

四、请设置一个数据段DATASG,其中定义以下字符变量或数据变量。

(1)FLD1B为字符串变量:

‘personalcomputer’:

(2)FLD2B为十进制数字节变量:

32:

(3)FLD3B为十六进制数字节变量:

20:

(4)FLD4B为二进制数字节变量:

01011001;

(5)FLD5B为数字的ASCII字符节变量:

32654;

(6)FLD6B为10个零的字节变量;

(7)FLD7B为零件名(ASCII码)及其数量(十进制)的表格:

PART120

PART250

(8)FLD1W为十六进制数字节变量:

FFF0;

(9)FLD2W为二进制数字变量:

(10)LD4W为包括5个十进制数的字节变量:

5,6,7,8,9;

(11)LD5W为5个零的字变量

DATASGSEGMENT

FLD1BDB‘personalcomputer’

FLD2BDB32

FLD3BDB20H

FLD4BDB01011001B

FLD5BDB‘32654’

FLD6BDB10DUP(0)

FLD7BDB‘20’,50

FLD1WDBF0H,FFH

FLD2WDW01011001B

LD4WDB5,6,7,8,9

LD5WDW5DUP(0)

DATASGENDS

五、写出框架:

1、按下面的要求写出程序的框架。

(1)、数据段的位置从0E000H开始,数据段中定义一个100字节的数组,其类型属性既是字又是字节;

(2)、堆栈段从小段开始,段组名为STACK;

(3)、代码段中指定段寄存器,指定主程序从1000H开始,给有关段寄存器赋值;

(4)、程序结束。

ORG0E000H

data_segSEGMENT

arr1DW100DUP(?

arr2EQUWORDPTRarr1

data_segENDS

stack_segSEGMENTPATASTACK

stack_segENDS

code_segSEGMENT

mainPROCFAR

ASSUMECS:

code_seg,DS:

data_seg,SS:

stack_seg

ORG1000H

start:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,data_seg

MOVDS,AX

MOVAX,stack_seg

MOVSS,AX

RET

mainENDP

code_segENDS

ENDstart

2、写出“调用程序和子程序不在同一代码段中”框架

segxSEGMENT

sebtPROCFAR

RET

sebtENDP

CALLsebt

segxENDS

segySEGMENT

segyENDS

六、编程题:

1、编一个程序,对键盘输入的小写字母用大写字母显示出来。

BEGIN:

MOVAH,1

INT21H

CMPAL,’a’

JBSTOP

CMPAL,’z’

JASTOP

SUBAL,20H

MOVDL,AL

MOVAH,2

JMPBEGIN

STOP:

RET

第二套

1、MOVCX,DX设(CX)=1064H,(DX)=6789H

指令执行后(CX)=__6789H_______,(DX)=__6789H_______

2、ADDAL,CH设(AL)=34H,(CH)=0D4H

指令执行后(AL)=__08H_____,(CH)=___0D4H______

3、XCHGAX,(BP+SI)

设(AX)=2030H,(BP)=0200H,(SI)=0023H,(SS)=2F00H,(2F223H)=5A21H,OPR2的物理地址=2F000+0200+0023=2F223H

则指令执行后(AX)=5A21H,(2F223H)=2030H

4、LESSI,[BX]设(DS)=C000H,(BX)=0300H,(0C0300H)=0123H,(0C0302H)=5410H则指令执行后(SI)=0123H,(ES)=5410H

5、LDSSI,[30H]设(DS)=B000H,(B0030H)=5620H,(B0032H)=4500H,则指令执行后(SI)=5620H,(DS)=4500H

6、ADDAL,BL

AAA

如指令执行前,(AX)=0535H,(BL)=39H

执行ADDAL,BL后,(AL)=6EH

执行AAA后,(AX)=0604H

7、MOVAX,[BX][DI]如(DS)=3000H,(BX)=3145H,(DI)=1FC0H

则物理地址=35105H

8、MOVAX,MASK[BX][DI]

如果(DS)=C000H,(BX)=1200H,(DI)=5600H,MASK=0360H,

则物理地址=C6B60H

9、在一个程序开始执行以前(CS)=0BB00H,(如16进制数的最高位为字母,则应在其前加一个0)(IP)=5ED0H,

试问该程序的第一字的物理地址是C0ED0H

10、MOVAL,0BFH

ANDAL,0FCH

上述指令执行后(AL)=BCH

11、MOVCL,2

SHLSI,CL

(SI)=1450H

(SI)=5140H,CF=0

欲使以下指令序列实现,(BCD3)(BCD1)-(BCD2)的功能(请在横线上添上适当的语句)

SUBAL,BCD2

DAS

SBBAL,BCD2+1

1、把AX寄存器和CX寄存器的内容相加,结果存入AX寄存器中。

ADDAX,CX

2、用寄存器BX和DI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。

ADDAL,[BX+DI]

3、用寄存器BX和位移量0DDH的寄存器相对寻址方式把存储器中的一个字和(DX)相加,并把结果送回存储器中。

ADD[BX+0DDH],DX

4、用位移量为5600H的直接寻址方式把存储器中的一个字与数8765H相加,并把结果送回该存储单元中。

ADD[5600H],8765H

5、把数0E8H与(AH)相加,并把结果送回AH中。

ADDAH,0E8H

1、已知堆栈寄存器ss的内容是0E000H,堆栈指针寄存器SP的内容是02FFH,先执行两条把1234H和5678H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。

E02FFH

E02FBH

78H

E02FCH

56H

E02FDH

34H

E02FEH

12H

执行PUSH后

执行POP后

MESSAGEDB‘HELLOW’

MESSA1DB‘AB’

MESSA2DW‘AB’

MESSAGE

‘H’

‘E’

‘L’

MESSA1

MESSA2

‘O’

‘W’

‘A’

‘B’

ARR1DW2DUP(3,4,?

ARR2DW10DUP(?

ARR1

03

ARR2

‘CPROGRAME’:

(2)FLD2B为十六进制数字节变量:

10:

(3)FLD3B为十进制数字节变量:

50:

10101010;

9361256;

(6)FLD6B为20个零的字节变量;

(8)FLD1W为十六进制数字变量:

BBCC53;

(10)LD4W为包括5个十进制数的字变量:

1,8,2,4,9;

FLD1BDB‘CPROGRAME’

FLD2BDB10H

FLD3BDB50

FLD4BDB10101010B

FLD5BDB‘9361256’

FLD6BDB20DUP(0)

FLD1WDWBBH,CCH,53H

LD4WDW1,8,2,4,9

2、写出“调用程序和子程序在同一代码段中”框架

MAINPROCFAR

CALLSUBR1

MAINENDP

SUBR1PROCNEAR

SUBR1ENDP

1、编一个程序,从键盘接受一个小写字母,然后找出它的前导字符和后续字符再按顺序显示出来。

DECAL

MOVCX,3

DISPLAY:

MOVAH,2

INCDL

LOOPDISPLAY

第三套

1、MOVBX,AX设(AX)=5800H,(BX)=6C7BH

指令执行后(BX)=__6C7BH_______,(AX)=__6C7BH_______

2、ADDAL,BH设(AL)=3DH,(BH)=5FH

指令执行后(AL)=__9CH_____,(BH)=__5FH_______

设(BX)=7D00H,(BP)=0520H,(SI)=0100H,(SS)=3C00H,(3C620H)=5FABH,OPR2的物理地址=3C000+0520+0100=3C620

则指令执行后(BX)=5FABH,(3C620H)=7D00H

4、LESDI,[BX]设(DS)=D000H,(BX)=07DBH,(0D07DBH)=0321H,(0D07DDH)=6000H则指令执行后(DI)=0321H,(ES)=6000H5、LDSSI,[78H]设(DS)=1000H,(10078H)=0A00H,(1007AH)=B000H,则指令执行后(SI)=0A00H,(DS)=B000H

6、MULAL,DL

如指令执行前,(AL)=08H,(DL)=05H

执行AAM后,(AH)=04H,(AL)=00H

7、MOVAX,[BX][DI]如(DS)=5300H,(BX)=02A0H,(DI)=29FCH

则物理地址=559C9CH

如果(DS)=8000H,(BX)=4500H,(SI)=0876H,MASK=0745H,

则物理地址=854BBH

9、在一个程序开始执行以前(CS)=0C376H,(如16进制数的最高位为字母,则应在其前加一个0)(IP)=8BFAH,

试问该程序的第一字的物理地址是0CC35AH

10、MOVAL,43H

ORAL,20H

上述指令执行后(AL)=63H

SAL[DI],CL

(0F980AH)=0C80H,CF=00H

12、已知(BCD3)=1234,(BCD4)=2345,BCD3和BCD4均为用压缩的BCD码表示的十进制数,由于它们都是4位数,所以每个数占有2个字节,高位数占有高位字节,其存放方式为

(BCD3)=34,(BCD3+1)=12

(BCD4)=45,(BCD4+1)=23

欲使以下指令序列实现,(BCD1)(BCD3)+(BCD4)的功能(请在横线上添上适当的语句)

MOVAL,BCD3

ADDAL,BCD4

MOVBCD1,AL

MOVAL,BCD3+1

ADCAL,BCD4+1

MOVBCD1+1,AL

1、把CX寄存器和AX寄存器的内容相加,结果存入CX寄存器中。

ADDCX,AX

2、用寄存器BX和DI的基址变址寻址方式把存储器中的一个字节与DH寄存器的内容相加,并把结果送到DH寄存器中。

ADDDH,[BX+DI]

3、用寄存器BX和位移量0D1H的寄存器相对寻址方式把存储器中的一个字和(AX)相加,并把结果送回存储器中。

ADD[BX+0D1H],AX

4、用位移量为08A0H的直接寻址方式把存储器中的一个字与数0A760H相加,并把结果送回该存储单元中。

ADD[08A0H],0A760H

5、把数0FH与(AL)相加,并把结果送回AL中。

ADDAL,0FH

1、已知堆栈寄存器ss的内容是0AA00H,堆栈指针寄存器SP的内容是01EDH,先执行两条把1357H和2468H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。

AA1EDH

AA1E9H

68H

AA1EAH

24H

AA1EBH

57H

AA1ECH

13H

DATA_BYTEDB67,01110001B,10H,0FDH

DATA_WORDDW127,10H,-1

DATA-DWDD2+3*5,0FEDCH

43

71

7F

11

DC

FE

ABCDB0,?

?

0

DEFDW?

52,?

ARRAYDB100DUP(0,2DUP(1,2),0,3)

ABC

DEF

ARRAY

34

四、请设置一个数据段DATASG,其中定义以下字符

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

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