微机原理与接口技术4章1.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术4章1

第四章 汇编语言程序设计 主要内容 汇编语言程序的结构 汇编语言语句类型和组成 汇编语言程序设计 4.1汇编语言程序及其开发方法(1) 4.1.1汇编语言及汇编语言程序 机器指令/汇编语言/高级语言 1、机器指令: 计算机最终能理解并执行的是二进制代码表示的机器语言指令。但用机器语言指令编写程序麻烦,不直观。 例如:PUSH AX 机器指令为:2、汇编语言: 以助记符的形式表示的机器语言指令称为汇编语言指令简称汇编语言,它与机器指令是一一对应的。 3 、高级语言: 面向过程(如C, FORTRAN)或对象(如C++, Java)的语言,不依赖于机器,因而有很好的通用性和可移植性. 机器语言指令、汇编语言指令及汇编语言源程序 4.1汇编语言程序及其开发方法(3) 4.1.2汇编语言程序的开发方法 1. 编写汇编语言源程序 源程序文件要以ASM为扩展名.源程序文件的形成(编辑)可以通过任何一个文本编辑器实现: 如DOS中的全屏幕文本编辑器EDIT. 2. 对源程序进行汇编 汇编语言源程序文件必须经过名为汇编程序的软件翻译成二进制目标代码文件,该目标代码文件主要包含源程序中的汇编语言指令代码所对应的机器语言指令代码。 PC机上常用的汇编程序软件是 MASN.EXE。 MASN HELLO.ASM 经过汇编后的源程序,汇编成目标程序文件,后缀为.obj 3.对目标程序进行连接 生成的目标程序,还需要用连接程序软件(LINK.EXE)将其与其他的目标程序及所需的库文件组装成一个完整的可执行程序文件。 LINK HELLO.OBJ 4.1汇编语言程序及其开发方法(4) 4.可执行程序的运行 经汇编、连接生成的可执行程序在操作系统(DOS)下只要输入文件名就可以运行: hello.exe 操作系统装载该文件进入主存,并开始运行。 在DOS下运行程序时,COMMAND.COM把.EXE文件装入内存。装入时在数据段内偏移地址0处构造一个100H字节的程序段前缀PSP,然后是代码段/数据段/堆栈段内容。装入后,自动设置DS和ES寄存器指向程序段前缀,CS、IP、SS、SP寄存器设置为由连接程序传过来的值(所以必须在程序中给DS、ES赋值)。 5.调试程序 DEBUG HELLO.EXE 4.1汇编语言程序及其开发方法(5) 程序结束返回DOS的方法: 程序一开始先把PSP的段地址(由DS指向)压栈,把偏移地址0压栈。程序结束时RET指令使得:栈顶0000H-IP,PSP的段地址-CS,将要执行的指令是PSP里的内容,PSP里的前两个字节是指令INT 20H,是DOS中断调用,实现的功能就是“返回DOS”。 START PROC FAR PUSH DS MOV AX,0 PUSH AX : RET START ENDP 4.2汇编语言源程序的结构(1) 汇编语言的源程序是分段的,由几个段形成一个源程序,每一段有一个段名,以SEGMENT为段开始,以ENDS结束; 源程序最后以END作结束; 一般有DATA段,CODE段,STACK段; 一个段由若干语句组成 4.2汇编语言源程序的结构(2) 一、 汇编语言的语句格式 由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。 在8086/8088汇编语言中,有两类汇编语言语句:一类是执行性语句,另一类是说明性语句。对执行性语句,汇编程序都为之产生机器指令代码;而说明性语句的作用仅仅是告诉汇编程序对汇编程序中的执行性语句应该如何产生代码或如何分配存储空间。 执行性语句可分为两种类型:一般性执行性语句和宏指令。一般性执行性语句对应一条8086/8088的机器指令,每个语句由1~4个部分组成,其格式是: [标号:] 指令助记符 [操作数][;注解] 说明性语句又称为“指示性语句”,通常用来表示源程序的起始或终止信息、分段情况、内存结构、变量说明等信息。 [名字] 伪指令助记符 [参数][;注解] 其中用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,一行最多可有132个字符 .   例: RET ;无操作数 COUNT: INC CX ;一个操作数 COST DB 3,4,5,6,7;伪指令,5个操作数 MOV AX,[BP十4] ;二个操作数 4.2汇编语言源程序的结构(4) 1.标号(名字): 是给指令或某一存

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档