汇编语言第三章.ppt

  1. 1、本文档共117页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定位伪指令 定位伪指令控制数据的偏移地址 ORG 参数 ORG伪指令是将当前偏移地址指针指向参数表达的偏移地址: ORG 100h ;从100h处安排数据或程序 ORG $+10 ;使偏移地址加10,即跳过10个字节空间 MASM中,符号“$”表示当前偏移地址值 EVEN ;从偶地址开始 ALIGN n ;从n的整数倍地址开始 第六十二页,共一百一十七页,2022年,8月28日 3.2.3 变量和标号的属性 标号和名字一经定义便具有以下两类三种属性: ① 段值 标号和名字对应存储单元的段地址 ② 偏移值 标号和名字对应存储单元的偏移地址 ③ 类型 标号、子程序名的类型可以是NEAR(近)和FAR(远),分别表示段内或段间 变量名的类型可以是BYTE(字节)、WORD(字)和DWORD(双字)等 地址属性 类型属性 第六十三页,共一百一十七页,2022年,8月28日 地址操作符 取得名字或标号的段地址和偏移地址两个属性 [ ] 将括起的表达式作为存储器地址 $ 当前偏移地址 : 采用指定的段地址寄存器 OFFSET 名字/标号 返回名字或标号的偏移地址 SEG 名字/标号 返回名字或标号的段地址 实例 第六十四页,共一百一十七页,2022年,8月28日 org $+10 array db 45,45h .code mov ax,seg array mov ds,ax mov bx,offset array ;等价于 lea bx,array mov cl,array+4 ;等效于 mov cl,array[4] mov ax,es:[2000h] 地址操作符实例 加4个字节单元 第六十五页,共一百一十七页,2022年,8月28日 类型操作符 类型操作符对名字或标号的类型属性进行有关设置 类型名 PTR 名字/标号 THIS 类型名 SHORT 标号 TYPE 名字/标号 SIZEOF 变量名 LENGTHOF 变量名 第六十六页,共一百一十七页,2022年,8月28日 PTR操作符 类型名 PTR 名字/标号 PTR操作符使名字或标号具有指定的类型 类型名可以是 BYTE/WORD/DWORD/FWORD/QWORD/TBYTE 或者是NEAR/FAR,还可以是由STRUCT、RECORD、UNION以及TYPEDEF定义的类型 mov al,byte ptr w_var ;w_var是一个字变量 jmp far ptr n_label ;n_label是一个标号 使用PTR操作符,可以临时改变名字或标号的类型 第六十七页,共一百一十七页,2022年,8月28日 THIS操作符 THIS 类型名 利用THIS说明的操作数具有汇编时的当前逻辑地址,但具有指定的类型 b_var equ THIS byte ;按字节访问变量b_var,但与w_var的地址相同 w_var dw 10 dup(0) ;按字访问变量w_var f_jump equ THIS far ;用f_jump为段间转移(f_jump label far) n_jump: mov ax,w_var ;用n_jump为段内近转移,但两者指向同一条指令 LABEL伪指令的功能等同于“EQU THIS” 第六十八页,共一百一十七页,2022年,8月28日 SHORT操作符 SHORT 标名 指定标号作为-128~+127字节范围内的短转移 jmp short n_jump 当然,如果标号实际上超出了这个范围,则出错。 对高版本MASM已无意义 第六十九页,共一百一十七页,2022年,8月28日 TYPE操作符 TYPE 名字/标名 返回表明名字或标号类型的一个字量数值 对字节、字和双字变量依次返回1、2和4; 对短、近和远转移依次返回ff01h、ff02h和ff05h mov ax,TYPE w_var ;汇编结果为mov ax,2 mov ax,TYPE n_jump ;汇编结果为 mov ax,0ff02h(near标号) 操作符SIZEOF返回整个变量占用的字节数 LENGTHOF返回整个变量的数据项数(即元素数) SIZEOF = LENGTHOF × TYPE 第七十页,共一百一十七页,2022年,8月28日 .model small .stack .data v_byte equ this byte ;v_byte是字节类型,与变量v_word的地址相同 v_word dw 3332h,3735h ;v_word是字类型的变量 target dw 5 dup(20h) ;分配数据空间2×5=10字节 crlf db 0dh,0ah,'$' flag db 0 n_point dw offset s_la

文档评论(0)

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

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

1亿VIP精品文档

相关文档