汇编语言.docx

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

汇编语言.docx

《汇编语言.docx》由会员分享,可在线阅读,更多相关《汇编语言.docx(14页珍藏版)》请在冰点文库上搜索。

汇编语言.docx

汇编语言

汇编语言复习题

一、简答题

1、存储器地址为什么要分段?

物理地址是如何形成的?

2、IBMPC机的寻址方式(与数据有关的寻址方式)有几种?

各举一例说明。

3、80x86微机的存储器中存放信息如下图所示。

试读出30022H与30024H字节单元的内容与30021H和30022H字单元的内容。

 

4、现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后AX的内容。

1)MOVAX,1200H

2)MOVAX,BX

3)MOVAX,[1200H]

4)MOVAX,[BX]

5)MOVAX,1100[BX]

5、完成下列各式补码数的运算,并根据结果设置标志位SF,CF,ZF,OF,指出运算结果是否有效

1)01001001b+10011101b

2)01000001b-10101011b

6、有符号定义语句如下:

BUFFDB1,2,3,’123’

EBUFFDB0

LEQUEBUFF-BUFF

问L的值为多少?

为什么?

答案:

1、IBMPC系列机的字长为16位,能够访问的最大存储空间64KB,而在IBMPC内存为1MB的情况下,访问这1MB的存储空间需要20位。

为了解决字长为16位的机器访问1MB的存储空间,将1MB空间每16B分为一段,共64K段,以16位段地址:

16位偏移地址的形式组成,物理地址通过如下方式计算:

物理地址=段地址×10h+偏移地址

2、IBMPC机的寻址方式有7种:

1)立即寻址:

MOVAX,1234H;

2)寄存器寻址:

MOVAX,BX;

3)直接寻址:

MOVAX,[1234H];

4)寄存器间接寻址:

MOVAX,[BX];

5)寄存器相对寻址:

MOVAX,20H[BX];

6)基址变址寻址:

MOVAX,[BX][SI];

7)相对基址变址寻址:

MOVAX,100H[BX][SI];

3、解:

(30022H)=12H

(30024H)=56H

(30021H)=12CDH

(30022H)=3412H

4、解:

(1)MOVAX,1200H

解:

(AX)=1200H

(2)MOVAX,BX

解:

(AX)=0100H

(3)MOVAX,[1200H]

解:

物理地址=(DS)×10H+1200H

(AX)=4C2AH

(4)MOVAX,[BX]

解:

物理地址=(DS)×10H+0100H=20100H

(AX)=3412H

(5)MOVAX,1100[BX]

解:

物理地址=(DS)×10H+0100H+1100H=21200H

(AX)=4C2AH

5、

(1)01001001b+10011101b

解:

01001001

+10011101

————————

11100110由此可得:

SF=1CF=0ZF=0OF=0计算结果有效

(2)01000001b-10101011b

解:

01000001

-10101011

————————

=>01000001

+01010101

————————

10010110由此可得:

SF=1CF=1ZF=0OF=1

减法计算中,被减数、减数符号相反,结果符号与减数相同,OF=1计算结果无效

6、有符号定义语句如下:

BUFFDB1,2,3,’123’

EBUFFDB0

LEQUEBUFF-BUFF

问L的值为多少?

为什么?

解:

根据数据段的定义,BUFF长度定义为6个字节,分别存放1,2,3,‘1’,‘2’,‘3’,而后紧接着为EBUFF的地址,故L值为6

 

二、程序题

1、MOVBL,64H

MOVCL,03H

XORAX,AX

AGAIN:

ADDAL,BL

ADCAH,0

DECCL

JNZAGAIN

问:

(1)该程序段完成的功能是:

   

(2)AX=________。

2、已知数据段中定义

DAT1DB12H,34H,56H,78H

MOVCX,0

MOVAX,WORDPTRDAT1

MOVCL,DAT1+3

当程序段执行完后AX=________,CX=________。

3、DA1DB83H,72H,61H,94H,5AH

MOVCX,WORDPTRDA1

ANDCX,0FH

MOVAL,DA1+3

SHLAL,CL

上述指令序列执行后,AL=_______,CL=_______。

4、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!

).试在空白处填上适当的一条指令。

STRINGDB‘COMPUTER’,‘$’

MOVBX,0FFSETSTRING

LOP:

MOVDL,[BX]

MOVAH,02H

INT21H

____________________

____________________

JNELOP

答案:

1、AX=012CH,将AX内容乘3送BX中

2、AX=3412H,CX=0078H

3、AL=0A0H,CL=03H

4、INCBX

CMP[BX],24H

三、名词解释

1、汇编语言

2、物理地址

3、SP:

4、IP:

答案:

1、汇编语言:

用指令的助记符、符号地址、标号等符号书写程序的语言;

2、物理地址:

唯一代表存储空间中每个字节单元的地址;

3、SP:

保存当前栈顶地址的寄存器;

4、IP:

指示下一条要执行指令的地址的寄存器

四、编程题

1、试编制一程序段,用串操作指令实现以DA_BY为首址的20H个字节单元中存放相同字符‘Y’(设DA_BY存储区已有ES指向)。

2、试编制一源程序,统计DA1字单元中含0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。

DATASEGMENT

DA1DWXXXX

DATAENDS

4、已知在N到N+i的存储区内有一ASCII码字符串(共i+1个),试编写一个汇编语言程序,将此字符串传送到NI到NI+i单元中,并使字符串的顺序与原顺序相反。

(只写出关键代码段即可)(6)

5、编写程序,求解sum=

=a1+a2+…+a100,要求写出完整程序。

(9)

6、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

只写关键代码段即可(8)

7、试编写一程序,比较两个字符串STRING1与STRING2所含有的字符是否完全相同,若相同则显示“MATCH”,如不同则显示“NOMATCH”,字符串内容自定义,要求写出完整的程序。

(12)

答案:

1、LEADI,DA_BY

MOVCX,32

MOVAL,‘Y’

CLD

REPSTOSB。

 

2、CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,DA1

MOVCX,16

XORBL,BL

AGAIN:

MOVAL,[SI]

HLAL,1

JCNEXT

INCBL

 NEXT:

INCSI

LOOPAGAIN

TESTBL,01H

JNEL1

CLC

JMPDONE

L1:

STC

DONE:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

3、解:

LEASI,N

LEADI,NI

ADDDI,I

MOVCX,I

ADDCX,1

MOVE:

CLD

LODSB

STD

STOSB

LOOPMOVE

4、解:

DATASEGMENT

ARRDWa1,a2,a3,a4,a5,a6,…,a100

SUMDW?

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

LEABX,ARR

MOVCX,100

MOVAX,0

AGAIN:

ADDAX,[BX]

ADDBX,2

LOOPAGAIN

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

5、解:

BEGIN:

MOVAH,01H

INT21H

CMPAL,’a’

JBFIN

CMPAL,’z’

JAFIN

SUBAL,20H

MOVDL,AL

MOVAH,02H

INT21H

JMPBEGIN

FIN:

RET

6、解:

DATASEGMENT

STRING1DB‘HEREYOUARE’

STRING2DB‘HEREYOUAER’

YESDB‘MATCH’,0DH,0AH,’$’

NODB‘NOMATCH’,0DH,0AH,‘$’

DATAENDS

CODESEGEMTN

ASSUMECS:

CODE,DS:

DTAT

START:

MOVAX,DATA

MOVDS,AX

BEGIN:

LEAAL,STRING1

LEADL,STRING2

MOXCX,STRING2–STRING1

REPCMPSB

JNEDISPNO

MOVAH,09H

LEADX,YES

INT21H

JMPEXIT

DISPNO:

MOVAH,09H

LEADX,NO

INT21H

EXIT:

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

五、阅读下列各指令序列段,写出它们各完成什么功能

1.SUBAX,CX

SBBDX,BX

2.PUSHAX

PUSHBX

POPAX

POPBX

3.假设DS,ES初始化到同一数据段

CLD

MOVCX,20

LEASI,STRING1

LEADI,STRING2

REPMOVSB

4.CLD

MOVCX,COUNT

MOVAL,‘‘;空格

LEADI,CHAR_FIELD

REPSTOSB

 

5.MOVCX,M

MOVSI,0

NEXT:

INCARRAY[SI]

ADDSI,2

LOOPNEXT

6.MOVDX,A+2

MOVAX,A

ADDAX,A

ADCDX,A+2

CMPDX,B+2

JLL1

JGL2

CMPAX,B

JBL1

L2:

MOVAX,2

JMPEXIT

L1:

MOVAX,1

EXIT:

HLT

答案:

1、SUBAX,CX

SBBDX,BX

解:

完成双精度数减法功能,即(DX,AX)-(DX,CX)→(DX,AX)

2、PUSHAX

PUSHBX

POPAX

POPBX

解:

将AX与BX的内容交换

3、假设DS,ES初始化到同一数据段

CLD

MOVCX,20

LEASI,STRING1

LEADI,STRING2

REPMOVSB

解:

将STRING1中的20个字符移到STRING2中

4、CLD

MOVCX,COUNT

MOVAL,‘‘;空格

LEADI,CHAR_FIELD

REPSTOSB

解:

用空格符将字符区CHAR_FIELD中的字符全部清除,字符数存在COUNT单元中

5、MOVCX,M

MOVSI,0

NEXT:

INCARRAY[SI]

ADDSI,2

LOOPNEXT

解:

将数组ARRAY的M个单元分别加1

6、MOVDX,A+2

MOVAX,A

ADDAX,A

ADCDX,A+2

CMPDX,B+2

JLL1

JGL2

CMPAX,B

JBL1

L2:

MOVAX,2

JMPEXIT

L1:

MOVAX,1

EXIT:

HLT

解:

如果2×(A+2,A)≤(B+2,B)则AX=1,若2×(A+2,A)≥(B+2,B),则AX=2

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

当前位置:首页 > 农林牧渔 > 林学

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

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