电气知识|变量和标号的属性

   更新日期:2017-03-26     来源:建材之家    作者:安防之家    浏览:46    评论:0    
核心提示:1. 标号由一组放在语句前头的标识符后跟一个 " : " 来定义,用以指定相应程序段在内存的首地址位置。 任何一个标号一经定义就具有 3 种属性: 标号的段地址; 标号的偏移地址; 标号的类型; 1 ) NEAR-- 该标号只能在段内转移; 2 ) FAR-- 在段间使用;标号和名字一经定义便具有以下两类三种属性:① 段值标号和名字对应存储单元的段地址② 偏移值标号和名字对应存储单元的偏移地址③

2019年中国陶瓷卫浴行业市场发展趋势和需求预判

推荐简介:2019年中国陶瓷卫浴行业市场发展趋势和需求预判第一、市场需求总量会略有萎缩,主要是楼市成交后,装修动力不足;但不会有大的萎缩,市场份额会稳定在65-70亿㎡之间,行业整体形势稳定,不会有太大起伏,行业不会出现灾难性后果,更加不会崩盘;第二、大量低端生产企业、没有创新能力、市场营销比较传统的生产型企业、营销公司将批量退出建材市......
安防之家讯:1. 标号由一组放在语句前头的标识符后跟一个 " : " 来定义,用以指定相应程序段在内存的首地址位置。

任何一个标号一经定义就具有 3 种属性:

标号的段地址;

标号的偏移地址;

标号的类型; 1 ) NEAR-- 该标号只能在段内转移; 2 ) FAR-- 在段间使用;

标号和名字一经定义便具有以下两类三种属性:

① 段值

标号和名字对应存储单元的段地址

② 偏移值

标号和名字对应存储单元的偏移地址

③ 类型

标号、子程序名的类型可以是 NEAR (近)和 FAR (远),分别表示段内或段间



2 . 变量的属性:

变量一经定义,通常具有 5 种属性(即特征):

1 ) 变量的段地址( SEG ); 2 ) 变量的偏移地址( OFFSET );

3 ) 变量类型( TYPE ):所定义变量所占字节数;由 DB 、 DW 、 DD 、 DQ 、 DT 伪指令定义的变量类型分别为 1 , 2 , 4 , 8 , 10 。前 3 种类型又分别称为 BYTE 类、 WORD 类、 DWORD 类。

4 ) 变量长度( LENGTH ):所定义变量的个数;

5 ) 变量大小( SIZE ):定义中分配给同一变量名所有变量的总字节数;

变量定义实质上是对数据区内存的一种安排,这种安排对汇编语言编程是非常重要的,它是在汇编过程中完成的。编写程序时,直接引用变量的名字,而汇编过程中,对任何变量的引用,都自动转换为变量相应的偏移地址。

变量名的类型可以是 BYTE (字节)、 WORD (字)和 DWORD (双字)等

地址操作符

取得名字或标号的段地址和偏移地址两个属性

[ ] 将括起的表达式作为存储器地址

$ 当前偏移地址

: 采用指定的段地址寄存器

OFFSET 名字 / 标号

返回名字或标号的偏移地址

SEG 名字 / 标号



返回名字或标号的段地址

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]

mov 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_var

f_jump equ THIS far

; 用 f_jump 为段间转移( f_jump label far )

n_jump: mov ax,w_var

; 用 n_jump 为段内近转移,但两者指向同一条指令

LABEL 伪指令的功能等同于“ EQU THIS ”

SHORT 标名

指定标号作为 -128 ~ +127 字节范围内的短转移

jmp short n_jump

当然,如果标号实际上超出了这个范围,则出错。

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

.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_label

; 取得标号 s_label 的偏移地址

例:属性及其应用

.code

.startup

mov al,byte ptr v_word

; 用 PTR 改变 v_word 的类型,否则类型不匹配

dec al

mov v_byte,al

; 对 v_word 的头一个字节操作,原为 32H 、现为 31H

n_label: cmp flag,1

jz s_label ;flag 单元为 1 转移

inc flag

jmp short n_label ; 进行短转移

s_label: cmp flag,2

jz next ;flag 单元为 2 转移

inc flag

jmp n_point

; 段内的存储器间接寻址,转移到 s_label 标号处

next: mov ax,type v_word

; 汇编结果为 mov ax,2

mov cx,lengthof target

; 汇编结果为 mov cx,5

mov si,offset target

w_again: mov [si],ax ; 对字单元操作

inc si ;SI 指针加 2

inc si

loop w_again ; 循环

mov cx,sizeof target

; 汇编结果为 mov cx,0ah

mov al,'?'

mov di,offset target

b_again: mov [di],al ; 对字节单元操作

inc di ;DI 指针加 1

loop b_again ; 循环

mov dx,offset v_word

; 显示结果: 1357??????????

mov ah,9

int 21h

.exit 0

End安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
小程序码
 
打赏
 
更多>文章标签:安防监控
更多>同类安防监控资讯
0相关评论

推荐图文更多...
点击排行更多...
安防监控商机更多...
安防监控圈更多...
最新视频更多...
推荐产品更多...
水泥之家 | 橱柜之家 | 机械之家 | 水电之家 | 五金之家 | 家电之家 | 墙布头条 | 饰品头条 | 模具头条 | 家纺头条 | 建材群站 | 建材资讯 | 建材产品 | 俱乐部 | 装修之家 | 建材商机 | 装修问答 | 知名品牌 | 家装展会 | 装修效果图 | 商企动态 | 瓷砖之家 | 安防之家 | 灯具之家 | 门窗头条 | 地板头条 | 环保头条 | 暖气之家 | 玻璃幕墙 | 吊顶之家 | 隔断屏风 | 楼梯铁艺 | 家具之家 | 卫浴头条 | 石材园林 | 板材钢板 | 油漆头条 | 家纺头条 | 水泥之家 | 橱柜之家 | 家电之家 | 水电之家 | 五金之家 | 老姚之家 | 灯饰之家 | 电气之家 | 全景头条 | 照明之家 | 防水之家 | 防盗之家 | 区快洞察 | 漳州建材 | 泉州建材 | 三明建材 | 莆田建材 | 合肥建材 | 宣城建材 | 池州建材 | 亳州建材 | 六安建材 | 巢湖建材 | 宿州建材 | 阜阳建材 | 滁州建材 | 黄山建材 | 安庆建材 | 铜陵建材 | 淮北建材 | 马鞍山建材 |
建材 | 双碳之家 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号
(c)2015-2017 Bybc.cn SYSTEM All Rights Reserved
Powered by 安防之家