微机原理--第4章汇编语言程序设计.ppt

微机原理--第4章汇编语言程序设计.ppt

ID:49222243

大小:1.45 MB

页数:68页

时间:2020-02-02

微机原理--第4章汇编语言程序设计.ppt_第1页
微机原理--第4章汇编语言程序设计.ppt_第2页
微机原理--第4章汇编语言程序设计.ppt_第3页
微机原理--第4章汇编语言程序设计.ppt_第4页
微机原理--第4章汇编语言程序设计.ppt_第5页
资源描述:

《微机原理--第4章汇编语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第4章汇编语言程序设计本章重点汇编语言源程序的基本语法常用的指示性语句基本的DOS功能调用基本的程序设计2本章内容4.1汇编语言的格式4.2语句行的构成4.3指示性语句4.4指令语句4.5汇编语言程序设计及举例34.1.18086汇编语言程序的一个例子(P90)MY_DATASEGMENT;定义数据段SUMDB?;为符号SUM保留一个字节MY_DATAENDS;定义数据段结束MY_CODESEGMENT;定义码段ASSUMECS:MY_CODE,;规定CS和DS的内容DS:MY_DATAPORT_VALEQU3;端口的符号名GO:MOVAX,MY_DATA;DS初始化为MY_DATA

2、MOVDS,AXMOVSUM,0;清SUM单元CYCLE:CMPSUM,100;SUM单元与100相比较JNANOT_DONE;若未超过,转至NOT_DONEMOVAL,SUM;若超过,把SUM单元的内容OUTPORT_VAL,AL;通过AL输出HLT;然后停机NOTDONE:INAL,PORT_VAL;未超过时,输入下一个字节ADDSUM,AL;与以前的结果累加JMPCYCLE;转至CYCLEMY_CODEENDS;码段结束ENDGO;整个程序结束48086的汇编语言的源程序是分段的,由若干个段形成一个源程序。源程序的一般格式为:NAME1SEGMENT语句┇语句NAME1ENDSN

3、AME2SEGMENT语句┇语句NAME2ENDS┇END〈标号〉(第一条可执行指令)54.1.汇编语言的格式汇编语言源程序的结构源程序程序模块1……程序模块n堆栈段附加段代码段过程1……过程n指令性语句指示性语句数据段6二.段与过程的定义1.段的定义段名SEGMENT段名ENDS2.过程(子程序)的定义过程名PROCNEAR/FARRET过程名ENDP过程定义——设计具有一定功能的程序段,或称为子程序。段内过程的定义:过程名PROCNEAR段交叉过程的定义:过程名PROCFAR7[标号:][前缀]操作码[操作数[,操作数]][;注释][名字]伪操作操作数[,操作数…][;注释]空格作

4、为间隔由以上实例可知,每一语句行由4部分组成:4.2语句行的构成指令性语句是计算机可执行的指示性语句(伪指令)不能执行,用来定义变量,分配存储单元,指示程序开始和结束等这两种语句的差别:在形式上:带不带冒号,是否可转向它.在本质上:汇编时能否形成对应的机器码.8[标号:][前缀]操作码[;注释][名字]伪操作操作数[,操作数…][;注释][操作数[,操作数]]标号和名字(标识符)的规定:英文字母、数字及专用字符最大长度不能超过31个且不能由数字打头不能用保留字(如寄存器名,指令助记符,伪指令)(P93)由以上实例可知,每一语句行由4部分组成:4.2语句行的构成[操作数[,操作数]]9(

5、2)字符串常量用单引号括起来的字符或字符串汇编时被翻译成对应的ASCII码数据项操作数包括常量、变量、标号及表达式1.常量(1)数字常量二进制常量以B结尾十进制常量以D结尾或省略八进制常量以字母Q(或字母O)结尾十六进制常量以H结尾10变量是内存中的数据区在程序中作为存储器操作数来使用变量有三种属性段值—变量所在段的首地址偏移量—变量单元地址与段首地址之间的位移量类型—字节、字和双字2.变量11标号是指令所存放单元的符号地址,可作为转移指令或CALL指令的转移地址。标号也有三种属性:段值总是在CS段寄存器中,偏移量概念与变量同,类型分NEAR和FAR两种。若没有对类型进行说明,默认为N

6、EAR。3.标号124.表达式(1)算术运算符+、-、*、/,以及MOD例MOVAL,2*7LEASI,SUM+3(2)逻辑运算符AND、OR、XOR和NOT例MOVCL,36HAND0FH注意:逻辑运算符也是8086/8088的指令助记符运算符在汇编时进行指令在执行时进行13(3)关系运算符EQ(相等),NE(不等),LT(小于),GT(大于),LE(小于或等于),GE(大于或等于)关系为真,结果为0FFFFH关系为假,结果为0例:MOVBX,PORT_VALGE514(4)取值运算符和属性运算符(P103)取值运算符—获得存储器操作数的属性OFFSET—获得标号或变量的偏移地址SE

7、G—获得标号或变量的段地址例:MOVSI,OFFSETSTRI1与LEASI,STRI1类似属性运算符PTR—指定操作数的类型例:MOVAL,BYTEPTRVAR15(5)其它运算符1)方括号[]“[]”表示存储器操作数,方括号里的内容表示操作数的偏移地址。(2)段超越运算符“:”“:”跟在某个段寄存器名之后表示段超越用来指定一个存储器操作数的段属性,而不管其原来隐含的段是什么。164.3指示性语句(伪指令)常用的伪指令有:符号定义伪指令数据定

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。