欢迎来到天天文库
浏览记录
ID:58793240
大小:666.00 KB
页数:70页
时间:2020-10-03
《微型计算机原理与接口技术课件 第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章汇编语言程序设计1主要内容汇编语言源程序的结构汇编语言语句格式伪指令功能调用汇编语言程序设计2§4.1汇编语言源程序了解:汇编语言源程序的结构汇编语言语句类型及格式3一、汇编语言源程序结构41.汇编语言源程序与汇编程序汇编语言源程序汇编程序用助记符编写汇编程序汇编语言源程序机器语言目标程序源程序的编译程序52.汇编语言程序设计与执行过程输入汇编语言源程序(EDIT)汇编(MASM)链接(LINK)调试(TD)源文件.ASM目标文件.OBJ可执行文件.EXE最终程序6二、汇编语言语句类型及格式71.汇编语言语句类型指令性语句指示性语
2、句CPU执行的语句,能够生成目标代码CPU不执行,而由汇编程序执行的语句,不生成目标代码82.汇编语言语句格式指令性语句:[标号:][前缀]助记符[操作数],[操作数][;注释]指令的符号地址标号后要有冒号操作码注释前加分号9指示性语句格式[名字]伪指令助记符操作数[,操作数,…][;注释]变量的符号地址其后不加冒号指示性语句中至少有一个操作数103.标号、名字标号后有冒号,在指令性语句前;名字后不加冒号,在指示性语句前。英文字母、数字及专用字符组成,最大长度不能超过31个,且不能由数字打头,不能用保留字(如寄存器名,指令助记符,伪指令
3、)。114.操作数寄存器存储器单元常量变量或标号表达式12常量数字常量字符串常量例:‘A’MOVAL,’A’例:’ABCD’汇编时被译成对应的ASCII码41H,42H,43H,44H用单引号引起的字符或字符串13变量代表内存中的数据区,程序中视为存储器操作数变量的属性:变量所在段的段地址变量单元地址与段首地址之间的位移量。字节型、字型和双字型段值偏移量类型14表达式算术运算逻辑运算*关系运算取值运算和属性运算其它运算15算术运算和逻辑运算符算术运算符+,-,*,/,MOD逻辑运算符AND,OR,NOT,XOR例:MOVAL,8AND4
4、MOVAL,8+4-116取值运算符取得其后变量或标号的偏移地址取得其后变量或标号的段地址TYPE取变量的类型LENGTH取所定义存储区的长度SIZE取所定义存储区的字节数用于分析存储器操作数的属性获取变量的属性值OFFSETSEG17取值运算符例MOVAX,SEGDATAMOVDS,AXMOVBX,OFFSETDATALEABX,DATA等价于18取值运算符例若BUFFER存储区用如下伪指令定义:BUFFERDW200DUP(0)则:TYPEBUFFER等于2LENGTHBUFFER等于200SIZEBUFFER等于40019属性运算
5、符用于指定其后存储器操作数的类型运算符:PTR例:MOVBYTRPTR[BX],12H20其它运算符方括号:[]段重设符段寄存器名:[]方括号中内容为操作数的偏移地址用于修改默认的段基地址21§4.2伪指令掌握:伪指令的格式及实现的操作伪指令的应用22伪指令由汇编程序执行的“指令系统”作用:定义变量;分配存储区定义逻辑段;指示程序开始和结束;定义过程等。23常用伪指令数据定义伪指令符号定义伪指令段定义伪指令结束伪指令过程定义伪指令宏命令伪指令24一、数据定义伪指令用于定义数据区中变量的类型及大小格式:[变量名]伪指令助记符操作数,…;[
6、注释]符号地址定义变量类型定义变量值及区域大小251.数据定义伪指令助记符DB定义的变量为字节型DW定义的变量为字类型(双字节)DD定义的变量为双字型(4字节)DQ定义的变量为4字型(8字节)DT定义的变量为10字节型26数据定义伪指令例DATA1DB11H,22H,33H,44HDATA2DW11H,22H,3344HDATA3DD11H*2,22H,33445566H以上变量在内存中的存放形式27数据定义伪指令例_变量在内存中的分布DATA111223344DATA2224411000033DATA32200220000XX6655
7、443328数据定义伪指令的几点说明伪指令的性质决定所定义变量的类型;定义字符串必须用DB伪指令例:DATA1DB‘ABCD’,66H‘A’‘B’‘C’‘D’41H42H43H44H66H292.重复操作符作用:为一个数据区的各单元设置相同的初值目的:常用于声明一个数据区格式:[变量名]伪指令助记符nDUP(初值,…)例:BW20DUP(0)M1DB10DUP(0)303.“?”的作用表示随机值,用于预留存储空间MEM1DB34H,’A’,?DW20DUP(?)预留40个字节单元,每单元为随机值随机数占1个字节单元31数据定义伪指令例M
8、1DB‘Howareyou?’M2DW3DUP(11H),3344HDB4DUP(?)M3DB3DUP(22H,11H,?)变量在内存中的分区32数据定义伪指令例M1‘H’‘o’‘w’‘‘‘a’M211H1
此文档下载收益归作者所有