程序汇编实验举例及总结.docx

上传人:b****8 文档编号:10217743 上传时间:2023-02-09 格式:DOCX 页数:13 大小:116.97KB
下载 相关 举报
程序汇编实验举例及总结.docx_第1页
第1页 / 共13页
程序汇编实验举例及总结.docx_第2页
第2页 / 共13页
程序汇编实验举例及总结.docx_第3页
第3页 / 共13页
程序汇编实验举例及总结.docx_第4页
第4页 / 共13页
程序汇编实验举例及总结.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

程序汇编实验举例及总结.docx

《程序汇编实验举例及总结.docx》由会员分享,可在线阅读,更多相关《程序汇编实验举例及总结.docx(13页珍藏版)》请在冰豆网上搜索。

程序汇编实验举例及总结.docx

程序汇编实验举例及总结

程序汇编实验举例及总结

LT

3、利用中断调用,在屏幕上显示1—9之间随机数。

中断号86H

DATASSEGMENT

CLADB13,10,'WEAREGOINGTOPRODUCEANUMBERATRANDOM:

$:

'

INFONDB0DH,0AH,'THEPROGRAMRUNSGOOD$'

DATASENDS

STACKSSEGMENTSTACK

DB200DUP(0)

STACKSENDS

CODESSEGMENT

ASSUMEDS:

DATAS,SS:

STACKS,CS:

CODES

START:

MOVAX,DATAS

MOVDS,AX

LEADX,CLA

MOVAH,9

INT21H

MOVAX,0

MOVES,AX;

MOVBX,86H*4

CLI

MOVWORDPTRES:

[BX],OFFSETRAN

MOVWORDPTRES:

[BX+2],SEGRAN

STI

INT86H

MOVAH,02H

INT21H

LEADX,INFON

MOVAH,9

INT21H

MOVAX,4C00H

INT21H

RANPROC

PUSHCX

PUSHDX

MOVAH,0

INT1AH

MOVAX,DX

XORDX,DX

MOVBX,10

DIVBX

ADDDL,30H

MOVAH,02H

INT21H

POPDX

POPCX

IRET

RANENDP

CODESENDS

ENDSTART

4. 复制字符串,并倒序输出

DATASSEGMENT

STRING_ADB'stillhere',13,10,'$'

STRING_LDB'$'

DATASENDS

STACKSSEGMENT

STRING_BDB100DUP(?

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACKS

MOVSS,AX

LEASI,STRING_L

MOVAX,SI

LEASI,STRING_A

LEADI,STRING_B

SUBAX,SI

SUBAX,3

MOVCX,AX

MOVBX,AX

STD

REPMOVSB

LEADX,STRING_B

MOVAH,9

INT21H

MOVDL,13

MOVAH,2

INT21H

MOVDL,10

MOVAH,2

INT21H

LEASI,STRING_B

MOVCX,BX

ADDSI,BX

DECSI

S:

MOVDL,[SI]

MOVAH,2

INT21H

DECSI

LOOPS

MOVAH,004CH

INT21H

CODESENDS

ENDSTART

5、显示比较两个数的大小

DATASEGMENT

ADB33H

BDB87H

DATAENDS

STACKSEGMENT

DW128DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAL,'A'

CMPB,AL

JABGA

MOVDL,'A'

MOVBL,'B'

JMPDISP

BGA:

MOVDL,'B'

MOVBL,'A'

DISP:

MOVAH,2

INT21H

MOVDL,'>'

INT21H

MOVDL,BL

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

6、键盘输入10个学生的成绩,编写一个程序统计60-69分,70-79分,80-89分,90-99分及100分的人数,分别存放在Score6,Score7,Score8,Score9和Score10单元中。

输入10个学生的成绩如下:

65947882839572689098

DATASSEGMENT

INFON1DB13,10,'PLEASEINPUTTHOSESCORDS(YOUNEEDNOTPRESSENTERBETWEENTHEM):

$'

INFON3DB13,10,'$'

INFON2DB13,10,'THENUMBEROFSCORD6-SCORD10IS:

'

SCORD6DB30H

DB32

SCORD7DB30H

DB32

SCORD8DB30H

DB32

SCORD9DB30H

DB32

SCORD10DB30H

DB'$'

DATASENDS

STACKSSEGMENT

DB200DUP(0)

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAH,9

LEADX,INFON1

INT21H

MOVAH,9

LEADX,INFON3

INT21H

MOVCX,10

S:

MOVAH,1

INT21H

CALLCAL

INT21H

MOVAH,2

MOVDL,32

INT21H

LOOPS

MOVAH,9

LEADX,INFON2

INT21H

MOVAX,4C00H

INT21H

CALPROC

PUSHAX

CMPAL,36H

JZG6

CMPAL,37H

JZG7

CMPAL,38H

JZG8

CMPAL,39H

JZG9

CMPAL,31H

JZG1

G6:

ADD[SCORD6],1

JMPWAN

G7:

ADD[SCORD7],1

JMPWAN

G8:

ADD[SCORD8],1

JMPWAN

G9:

ADD[SCORD9],1

JMPWAN

G1:

ADD[SCORD10],1

MOVAH,1

INT21H

WAN:

POPAX

RET

CALENDP

CODESENDS

ENDSTART

二、心得体会

指令助记符决定了指令的功能,对应一条二进制编码的机器指令。

指令的操作数个数由该指令确定,可以没有操作数,也可以有一个或多个操作数,大多数指令要显示写出来,还有些操作数是隐含的。

当指令包含操作数的时候,书写时必须遵守:

1、指令助记符和操作数之间有分隔符,比如几个空格;2、如果含有多个操作数,操作数之间用逗号分隔。

现在简单总结汇编语言指令的分类:

1、数据传送指令;2、标志位操作指令;3、算术运算指令;4、逻辑运算指令;5、移位运算指令;6、位操作指令;7、比较运算指令;8、循环指令;9、转移指令;10、条件设置字节指令;11、串操作指令;12、BCD码运算调整指令;13、处理器指令。

在编写汇编程序时,应该注意特别容易出现的错误,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,CS不能作为目的操作数,offset后只能跟简单地址符号,等等。

汇编语言的寻址方式有直接寻址,寄存器寻址,基址变址寻址,相对基址变址寻址等等,掌握这些都是编写汇编程序很重要的环节。

汇编语言中的程序结构,子程序等知识也会帮助我们编写出一个更加完善的汇编程序。

另外,我们还应该掌握DOS系统功能调用,宏汇编等知识。

这里要对子程序和宏汇编加以区分,我的理解是:

子程序是调用,而宏是替换

四周的学习很短,但是也很充实,有电磁场有信号有高频,但是天天抱着电脑写的是汇编,看的书也是汇编语言,其实很幸运能有机会学一些底层的东西,老师的教学很细致认真,没有老师的督促,学习的效果肯定不尽人意。

 

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

当前位置:首页 > 人文社科 > 文学研究

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

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