变量和标号的属性

上传人:lu****89 文档编号:53753636 上传时间:2022-02-11 格式:DOCX 页数:5 大小:19.27KB
收藏 版权申诉 举报 下载
变量和标号的属性_第1页
第1页 / 共5页
变量和标号的属性_第2页
第2页 / 共5页
变量和标号的属性_第3页
第3页 / 共5页
资源描述:

《变量和标号的属性》由会员分享,可在线阅读,更多相关《变量和标号的属性(5页珍藏版)》请在装配图网上搜索。

1、本文格式为Word版,下载可任意编辑变量和标号的属性 1. 标号由一组放在语句前头的标识符后跟一个 : 来定义,用以指定相应程序段在内存的首地址位置。任何一个标号一经定义就具有 3 种属性:标号的段地址;标号的偏移地址;标号的类型; 1 ) NEAR- 该标号只能在段内转移; 2 ) FAR- 在段间使用;标号和名字一经定义便具有以下两类三种属性: 段值标号和名字对应存储单元的段地址 偏移值标号和名字对应存储单元的偏移地址 类型标号、子程序名的类型可以是 NEAR (近)和 FAR (远),分别表示段内或段间2 变量的属性: 变量一经定义,通常具有 5 种属性(即特征): 1 ) 变量的段地址

2、( SEG ); 2 ) 变量的偏移地址( OFFSET );3 ) 变量类型( TYPE ):所定义变量所占字节数;由 DB 、 DW 、 DD 、 DQ 、 DT 伪指令定义的变量类型分别为 1 , 2 , 4 , 8 , 10 。前 3 种类型又分别称为 BYTE 类、 WORD 类、 DWORD 类。4 ) 变量长度( LENGTH ):所定义变量的个数;5 ) 变量大小( SIZE ):定义中安排给同一变量名全部变量的总字节数; 变量定义实质上是对数据区内存的一种支配,这种支配对汇编语言编程是特别重要的,它是在汇编过程中完成的。编写程序时,直接引用变量的名字,而汇编过程中,对任何变量

3、的引用,都自动转换为变量相应的偏移地址。 变量名的类型可以是 BYTE (字节)、 WORD (字)和 DWORD (双字)等地址操作符取得名字或标号的段地址和偏移地址两个属性 将括起的表达式作为存储器地址$ 当前偏移地址: 采纳指定的段地址寄存器OFFSET 名字 / 标号返回名字或标号的偏移地址SEG 名字 / 标号返回名字或标号的段地址org $+10array db 45,45h.codemov ax,seg arraymov ds,axmov bx,offset array; 等价于 lea bx,arraymov cl,array+4; 等效于 mov cl,array4mov a

4、x,es:2000hmov al,byte ptr w_var ;w_var 是一个字变量jmp far ptr n_label ;n_label 是一个标号使用 PTR 操作符,可以临时转变名字或标号的类型THIS 类型名利用 THIS 说明的操作数具有汇编时的当前规律地址,但具有指定的类型b_var equ THIS byte; 按字节访问变量 b_var ,但与 w_var 的地址相同w_var dw 10 dup(0) ; 按字访问变量 w_varf_jump equ THIS far; 用 f_jump 为段间转移( f_jump label far )n_jump: mov ax,

5、w_var; 用 n_jump 为段内近转移,但两者指向同一条指令LABEL 伪指令的功能等同于“ EQU THIS ”SHORT 标名指定标号作为 -128 +127 字节范围内的短转移jmp short n_jump当然,假如标号实际上超出了这个范围,则出错。TYPE 名字 / 标名返回表明名字或标号类型的一个字量数值对字节、字和双字变量依次返回 1 、 2 和 4 ;对短、近和远转移依次返回 ff01h 、 ff02h 和 ff05hmov ax,TYPE w_var ; 汇编结果为 mov ax,2mov ax,TYPE n_jump; 汇编结果为 mov ax,0ff02h ( ne

6、ar 标号)操作符 SIZEOF 返回整个变量占用的字节数LENGTHOF 返回整个变量的数据项数(即元素数)SIZEOF LENGTHOF TYPE.model small.stack.datav_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 0n_point dw offset s_label; 取得标号 s_label 的偏移地址例:属性及其应

7、用.code.startupmov al,byte ptr v_word; 用 PTR 转变 v_word 的类型,否则类型不匹配dec almov v_byte,al; 对 v_word 的头一个字节操作,原为 32H 、现为 31Hn_label: cmp flag,1jz s_label ;flag 单元为 1 转移inc flagjmp short n_label ; 进行短转移s_label: cmp flag,2jz next ;flag 单元为 2 转移inc flagjmp n_point; 段内的存储器间接寻址,转移到 s_label 标号处next: mov ax,type

8、 v_word; 汇编结果为 mov ax,2mov cx,lengthof target; 汇编结果为 mov cx,5mov si,offset targetw_again: mov si,ax ; 对字单元操作inc si ;SI 指针加 2inc siloop w_again ; 循环mov cx,sizeof target; 汇编结果为 mov cx,0ahmov al,?mov di,offset targetb_again: mov di,al ; 对字节单元操作inc di ;DI 指针加 1loop b_again ; 循环mov dx,offset v_word; 显示结果: 1357?mov ah,9int 21h.exit 0End第 5 页 共 5 页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!