[工学]CH5 伪指令的定义与使用.ppt

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

第5章 伪指令的定义与使用 5.1 8086/8088宏汇编语言常用伪指令语句 5.2 汇编语言的数据和表达式 汇编源程序语句 指令 汇编过程中被翻译成相应的目标代码 连接后生成可执行机器代码 在程序运行期间由CPU执行 伪指令 汇编时由汇编程序处理,提供信息,使指令语句正确翻译 不可执行 5.1 8086/8088宏汇编语言常用伪指令语句 5.1.1 程序分段定义伪指令 5.1.2 符号定义伪指令 5.1.3 变量定义伪指令 5.1.4 标号定义伪指令 5.1.5 地址计数器$和定位伪指令ORG 5.1.1 程序分段定义伪指令 1.Segment和Ends 格式: 段名 Segment [对齐属性][组合属性][‘类别’] ··· ··· ··· ;语句序列 段名 Ends 5.1.1 程序分段定义伪指令 2.Assume 格式: 段名 Assume 段寄存器名:段名,段寄存器:段名,···   5.1.1 程序分段定义伪指令 3.结束伪指令 格式: Ends [过程名或标号] 表示汇编语言结束,其后语句不再汇编 5.1.2 符号定义伪指令 1.等值指令EQU 格式: 符号名 EQU 表达式 注意:在同一源程序中,EQU语句定义的符号不能再重新定义,即不能赋予不同的值 例题: 数据段定义 Datasg Segment PORT1 EQU 100 PLUS EQU ADD NUM EQU PORT1+20 NEWE EQU NUM COUNT EQU NUM COUNT EQU CX Datasg Ends 设代码段有如下指令: MOV AX,PORT1 PLUS AX,NUM MOV AX,NEWE MOV COUNT,AX 则被汇编成如下指令段: MOV AX,100 ADD AX,120 MOV AX,120 MOV CX,AX 5.1.2 符号定义伪指令 2.等号伪指令= 格式: 符号名 = 常数表达式 注意:类似EQU,但允许对符号名重定义。 例题: 数据段定义 Datasg Segment PORT1 = 100 PORT1 = PORT1+20 NEWE = PORT1 Datasg Ends 设代码段有如下指令: MOV AX,PORT1 MOV CX,NEWE 则被汇编成如下指令段: MOV AX,120 MOV CX,120 5.1.3 变量定义伪指令 格式: 变量名 {DB|DW|DD|DF|DQ|DT} 表达式 5.1.3 变量定义伪指令 1.数值表达式 例题: Datasg Segment NUM DB 12H,16 BUF DW 23A0H,1298H Datasg Ends 汇编后内存情况: 5.1.3 变量定义伪指令 2.ASCⅡ码字符串表达式 例题: Data Segment STR1 DB ‘HELLO’ Datasg Ends 汇编后内存情况: 5.1.3 变量定义伪指令 3.?表达式 例题: Data Segment NUM DB ? ;定义字节变量NUM,其值未初始化 Datasg Ends 汇编后内存情况: 5.1.3 变量定义伪指令 4.DUP表达式: 格式:n DUP (表达式) 例题: ARR DB 100 DUP(0) ;定义100个字节 ;初始化为0 BUF DW 10 DUP(?) ;首地址为BUF DB 10 DUP(10 DUP(0)) ;重复定义10字节 ;共100个字节 ;全部初始为0 ARR0 DB 100 DUP(?) ;重复定义100字节 ;全部未初始化 5.1.3 变量定义伪指令 5.地址表达式:必须使用DW或DD定义 例题: X DB 20H ADDR0 DW X ;存放字节变量X ;在段内的偏移地址 X DB 20H ADDRS0 DD X ;低位字存放段内偏移地址 ;高位字存放段地址 5.1.4 标号定义伪指令 提供另一种定义标号或变量名方法,但不分配内存 格式: 符号名 LABEL 类型 变量类型:BYTE、WORD、DWORD、FWORD、QWORD、TBYTE 标号或过程名类型:NEAR、FAR 例题: 数据段定义: B_ARRAY LABEL BYTE W_ARRAY DW 10 DUP (1234H) 代码段定义: MOV AX,W_ARRAY ;(AX)=1234H MOV DL,B_ARRAY ;(DL)=34H 5.1.5 地址计数器$和定位伪指令ORG 1.$地址计数器 汇编前,初值为0 $:表示当前值,即当前代码或数据所在偏移地址 例题1: Data Segment  ARRAY DW 1,$+

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档