第四章汇编语言程序设计-2课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第四章汇编语言程序设计-2课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 汇编语言 程序设计 _2 课件
- 资源描述:
-
1、第四章第四章 汇编语言程序设计汇编语言程序设计4.1 程序设计语言概述程序设计语言概述n机器语言机器语言n汇编语言汇编语言n高级语言高级语言用二进制编码表示的指令,计算机可以直接识别并执行用二进制编码表示的指令,计算机可以直接识别并执行 采用助记符表达指令操作码,采用标识符表示指令操采用助记符表达指令操作码,采用标识符表示指令操作数。与计算机内部硬件结构和指令系统密切相关,通用作数。与计算机内部硬件结构和指令系统密切相关,通用性较差。通常用于实时控制及需要直接控制设备的场合。性较差。通常用于实时控制及需要直接控制设备的场合。脱离具体机器,不依赖于特定计算机的结构和指令系脱离具体机器,不依赖于特
2、定计算机的结构和指令系统。通用性好,便于移植。不能编写直接访问机器硬件资统。通用性好,便于移植。不能编写直接访问机器硬件资源的系统软件或控制软件。源的系统软件或控制软件。4.2 8086汇编语言简介汇编语言简介一、数据与表达式一、数据与表达式1数据数据常数常数、变量变量、标号标号1)常数)常数 表示一个固定数值,主要用于做指令中的表示一个固定数值,主要用于做指令中的立即数立即数、寻、寻址中的址中的位移量位移量,或在伪指令语句中,或在伪指令语句中给变量赋值给变量赋值。数值常数数值常数:由二、八、十和十六进制表达的数。:由二、八、十和十六进制表达的数。字符串常数字符串常数:用:用 括起来的一串括起
3、来的一串ASCII码字符,等码字符,等效为一组数值常数。效为一组数值常数。0101B3247O 2873(D)23ABH12AB=31H、32H、41H、42H2)变量)变量n代表某个代表某个数据所在存储单元的地址数据所在存储单元的地址,用来,用来引用某引用某个存储单元个存储单元。其值在程序运行期间可以改变。其值在程序运行期间可以改变。n变量需要事变量需要事先定义先定义,通过变量名引用。,通过变量名引用。变量名表变量名表示给变量分配的存储单元的首地址示给变量分配的存储单元的首地址。n属性:属性:段基址段基址、段内偏移量段内偏移量、类型类型(字节、字字节、字等等)3)标号)标号n代表代表指令所在
4、存储单元的地址指令所在存储单元的地址,通常用来作为程,通常用来作为程序中转移、循环指令的操作数。序中转移、循环指令的操作数。n属性:属性:段基址段基址、段内偏移量段内偏移量、距离距离(NEARNEAR、FARFAR)2表达式表达式n由由常数常数、变量变量、标号标号和和运算符运算符连接而成连接而成n分类:分类:数字数字表达式、表达式、地址地址表达式表达式n8086汇编语言中的汇编语言中的运算符运算符 算术运算符算术运算符 逻辑运算符逻辑运算符 关系运算符关系运算符 数值返回运算符数值返回运算符 属性修改运算符属性修改运算符1)算术、逻辑、关系运算符)算术、逻辑、关系运算符算术运算符算术运算符+、
5、-、*、/、mod等等逻辑运算符逻辑运算符AND、OR、NOT、XOR关系运算符关系运算符EQ、NE、LT、LE、GT、GEn 注意注意逻辑运算指令逻辑运算指令和和逻辑运算符逻辑运算符的区别的区别 AND DX,PORT AND 0FFH汇编时汇编时由汇编程序计算由汇编程序计算程序程序运行时运行时计算计算若两个数的关系若两个数的关系符合比较条件,符合比较条件,则比较结果为则比较结果为全全1,否则为全,否则为全0=2)数值返回数值返回运算符运算符 段基址运算符段基址运算符SEG SEG 变量变量/标号标号功能:功能:取变量取变量/标号的段基址标号的段基址 偏移量运算符偏移量运算符OFFSET O
6、FFSET 变量变量/标号标号功能:功能:取变量取变量/标号的偏移地址标号的偏移地址例:将变量例:将变量NUM1的段基址送的段基址送AX,偏移地址送,偏移地址送SI。MOV AX,SEG NUM1 MOV SI,OFFSET NUM1;等价于等价于LEA SI,NUM1 类型运算符类型运算符TYPE TYPE 变量变量/标号标号功能:功能:返回反映返回反映变量变量/标号标号类型的数值类型的数值 长度运算符长度运算符LENGTH LENGTH 变量变量功能:功能:返回变量的元素个数。返回变量的元素个数。若变量定义时采用若变量定义时采用DUP表达式表达式,则返回,则返回最外层最外层DUP的重复次数
7、;若最外层未用的重复次数;若最外层未用DUP,则返回,则返回1。DUP表达式的格式表达式的格式:重复次数:重复次数 DUP(数据(数据,)类型类型字节字节字字双字双字 NEAR FAR返回值返回值124-1-2例:例:X1 DB 1,2,3,4 X2 DB 10 DUP(2,3 DUP(0)X3 DB 2,3 DUP(0)则:则:LENGTH X1的值为的值为_ LENGTH X2的值为的值为_ LENGTH X3的值为的值为_ 字节总数运算符字节总数运算符SIZE SIZE 变量变量功能:功能:返回变量所占的总字节数。返回变量所占的总字节数。SIZE X=(LENGTH X)*(TYPE X
8、)1101例:例:VAR1 DB 2 DUP(1,2 DUP(0)MOV AX,SEG VAR1MOV BX,OFFSET VAR1MOV CL,TYPE VAR1MOV CH,LENGTH VAR1MOV DX,SIZE VAR1;CL=1;CH=2;DX=23)属性修改属性修改运算符运算符类型修改运算符类型修改运算符PTR类型类型 PTR 地址表达式地址表达式短转移运算符短转移运算符SHORT JMP SHORT 标号标号类型指定运算符类型指定运算符THIS THIS 类型类型段超越运算符段超越运算符段名段名:地址表达式地址表达式段寄存器段寄存器:地址表达式地址表达式BYTE、WORD、D
9、WORD、QWORD、TBYTE、NEAR、FAR变量、变量、标标号号、存储、存储单元单元3运算符的优先规则运算符的优先规则(自学自学)优先级优先级运算符运算符高高LENGTH,SIZE,段超越运算符段超越运算符PTR,OFFSET,SEG,TYPE,THIS*,/,MOD,SHL,SHR+,-EQ,NE,LT,LE,GT,GE低低NOT AND OR XORSHORT二、汇编语言的伪指令二、汇编语言的伪指令n指令语句指令语句n伪指令语句伪指令语句n宏指令语句宏指令语句执行语句。经过执行语句。经过汇编产生汇编产生可供计可供计算机硬件执行的机器算机硬件执行的机器目标代码目标代码。说明语句。如:程
10、序有几个段,说明语句。如:程序有几个段,段的名称,是否需要预留存储空段的名称,是否需要预留存储空间等。间等。不直接产生目标代码不直接产生目标代码。指令语句指令语句+伪指令语句。替代源伪指令语句。替代源程序中一段有独立功能的程序,程序中一段有独立功能的程序,汇编时汇编时产生产生相应的相应的目标代码目标代码。1数据定义伪指令数据定义伪指令n定义格式:定义格式:DB DW 变量名变量名 DD 数据项表数据项表 DQ DTn功能:将功能:将数据项表数据项表中的数值中的数值存入连续的存储单存入连续的存储单元中元中,并,并关联变量名和存储单元地址关联变量名和存储单元地址。可以是可以是常数常数、表达表达式式
11、、字符串字符串、?、带带DUPDUP的表达式的表达式数据定义例(数据定义例(1)DABYTE DB -5HDAWORD DW 6*3DADWORD DD 1234HDABYTEDAWORDDADWORDFBH12H00H34H12H00H00H数据定义例(数据定义例(2)STRING1STRING1 DBDB ABABSTRING2STRING2 DWDW ABABSTRING3STRING3 DDDD ABABSTRING1STRING2STRING341H42H42H41H00H00H41H42H2符号定义伪指令符号定义伪指令n用用符号符号表示表示常数常数、表达式表达式n赋值赋值伪指令伪指
12、令 格式:格式:符号名符号名 EQU 表达式表达式n等号等号伪指令伪指令 格式:格式:符号名符号名 =表达式表达式n区别:区别:用用EQU定义的符号定义的符号在释放前(在释放前(PURGE)不可以重新赋值不可以重新赋值注意:注意:符号名不具有标号的三个属性。符号名不具有标号的三个属性。常数表达式常数表达式地址表达式地址表达式变量名变量名标号名标号名过程名过程名寄存器名寄存器名指令助记符指令助记符COUNT=5COUNT=10 NUM EQU 13+5-4NUM EQU 12*6 符号定义例符号定义例PURGE NUMNUM EQU12*6正确正确错误错误3类型定义伪指令(类型定义伪指令(自学自
13、学)n定义格式:定义格式:变量名变量名/标号名标号名LABEL 类型类型n功能:为功能:为当前存储单元当前存储单元重新定义一个重新定义一个指定指定类型类型的的变量变量或或标号标号,但并不为此变量,但并不为此变量/标号标号分配存储单元。分配存储单元。4段定义伪指令段定义伪指令n功能:功能:把源程序划分成若干逻辑段把源程序划分成若干逻辑段,便于汇,便于汇编程序生产相应的目标代码,便于连接程序编程序生产相应的目标代码,便于连接程序生产可执行程序。生产可执行程序。n一个汇编语言源程序可以包含若干个逻辑段一个汇编语言源程序可以包含若干个逻辑段(代码段、数据段、附加段或堆栈段),段(代码段、数据段、附加段
展开阅读全文