- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 微机CPU指令系统0
——第一个程序与汇编指令;汇编语言程序从编写到执行的过程
源程序的构成
编译、连接源程序
exe文件装入内存执行的原理
对程序执行过程进行跟踪
汇编语言常用汇编指令;1.汇编源程序从编写到执行的过程;......
mov ax,0123H
mov bx,0123H
add ax,bx
……
;第一步 编写汇编源程序
使用文本编辑器编写汇编源程序,产生一个存储源程序的文本文件。
第二步 对源程序进行编译、连接
使用编译程序对源程序进行编译,产生目标文件;
对目标文件进行连接,生成可执行文件。
可执行文件包括两部分:
程序和数据
相关描述信息
第三步 执行可执行文件
依照描述信息,装入内存,并进行相关初始化工作,然后由CPU执行。;2.源程序的构成;assume cs:codesg
codesg segment
start: mov ax,0123H
mov bx,0D455H
add ax,bx
add ax, ax
mov ax,4C00H
int 21H
codesg ends
end start;汇编语言中包括两种指令
汇编指令
可被编译为对应的机器指令,最终由CPU所执行。
例如:mov,add,int
伪指令
没有对应的机器指令,最终不被CPU所执行。
伪指令是由编译器来执行的指令,根据伪指令来进行相关的编译工作。
前面的代码出现了三种伪指令,都有什么作用?;*;(1) XXX segment
… …
XXX ends
segment和ends是一对成对使用的伪指令,它的功能是定义一个段。segment说明一个段的开始,ends说明一个段的结束。一个段必须有一个名称来标识,XXX代表了某个段名。;*;(2) end
end是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令end,就结束对源程序的编译。
注意:
如果是主程序的话,end后需要加一个主程序首指令的标号。
不要搞混了end和ends, ends是和segment成对使用的,标记一个段的结束。而end的作用是标记整个程序的结束。;*;(3) assume
assume cs:codesg
这条伪指令的含义为“假设”。它假设某一段寄存器和程序中的某一个用segment. .. ends定义的段相关联。通过assume说明这种关联,在需要的情况下,编译程序凭借assume将段寄存器和某一个具体的段相联系。;*;汇编源程序中,除了汇编指令和伪指令外,还有一些标号,比如codesg、start。
一个标号指代一个地址。
比如程序中codesg是一个段的名称标号,这个段名最终将被编译,连接程序处理为一个段的段地址,并赋值给段寄存器CS。start也是一个标号,它指向了程序的第一条指令。;我们先定义一个段,起一个名称为abc
abc segment
… …
abc ends;在这个段中写入汇编指令,实现处理任务
abc segment
start: mov ax,2
add ax,ax
add ax,ax
abc ends;然后我们需要指出程序在何处结束
abc segment
start: mov ax,2
add ax,ax
add ax,ax
abc ends
end start;abc显然是代码段,我们将cs与段abc联系起来
assume cs:abc
abc segment
start: mov ax,2
add ax,ax
add ax,ax
abc ends
end start;原先的例子;*;程序返回应该在程序的末尾添加返回的程序段。
mov ax,4C00H
int 21H
在目前阶段,我们不必去理解int 21H指令的含义,以及为什么要在这条指令的前面加上指令mov ax,4C00H。我们只要知道,在程序的末尾使用这两条指令就可以实现程序返回。
;一个完整的程序
assume cs:abc
abc segment
start: mov ax,2
add ax,ax
add ax,ax
mov ax,4C00H
int 21H
abc ends
end start
将它保存成一个后缀为asm的文本文件
;3. 编译、
您可能关注的文档
最近下载
- 《新时代职业英语》教学资源_传媒英语_Unit_6_.pptx VIP
- 中医临床执业医师考试题及答案2025版.docx VIP
- 超声中信号处理.ppt VIP
- 《新时代职业英语》教学资源_传媒英语_Unit_7_.pptx VIP
- 部编人教版道德与法治五年级上册《全册课件》.pptx
- 《新时代职业英语》教学资源_传媒英语_Unit_9.pptx VIP
- 宝钢质量管理经验.doc VIP
- 勿忘历史,珍爱和平——抗战胜利80周年主题班会-2025-2026学年初中主题班会优质课件.pptx VIP
- Kuka控制系统 KR C5安装指南.pdf VIP
- 学习2025年《初中初三开学第一课》.pptx VIP
文档评论(0)