安防监控知识
电气知识|变量定义伪指令
2017-03-09  浏览:55
安防之家讯:1. [< 变量名 >]{DB|DW|DD|DQ|DT}< 表达式 >,< 表达式 >;

2. 表达式 为数据项分配存储单元的 , 用来留预存单元 . TEMP DB ?

3. 带 DUP 的表达式 重复数据定义操作符

DUP<( 表达式 )> TAB1 DB 10H DUP 保留 10H 个字节单元

变量定义( Define )伪指令为变量申请固定长度的存储空间,并可同时将相应的存储单元初始化

变量名 伪指令助记符 初值表

变量定义伪指令最常使用变量名

变量名为用户自定义标识符,表示初值表首元素的逻辑地址;用这个符号表示地址,常称为符号地址

变量名可以没有 , 这种情况,汇编程序将直接为初值表分配空间,无符号地址

设置变量名是为了方便存取它指示的存储单元

初值表

初值表是用逗号分隔的参数

主要由数值常数、表达式或?、 DUP 组成

?——表示初值不确定,即未赋初值;

DUP ——表示重复初值

DUP 的格式为:

重复次数 DUP( 重复初值参数 )

变量定义伪指令助记符

变量定义伪指令根据申请的主存空间单位分类

DB ——定义字节伪指令

DW ——定义字伪指令

DD ——定义双字伪指令

DF ——定义 3 字伪指令

DQ ——定义 4 字伪指令

DT ——定义 10 字节伪指令

还有定位伪指令

定义字节单元伪指令 DB

DB 伪指令用于分配一个或多个字节单元,并可以将它们初始化为指定值

初值表中每个数据一定是字节量( Byte ),存放一个 8 位数据:

可以是 0~255 的无符号数

或是- 128 ~+ 127 带符号数

也可以是字符串常数

data segment ;数据段

X db 'a',-5

db 2 dup(100),?

Y db 'ABC'

data ends

字节单元定义实例

mov al,X

; 此处 X 表示它的第 1 个数据,

故 AL ← 'a'

inc X+1

; 对 X 为始的第 2 个数据减 1 ,

故成为 -4

mov Y,al

; 现在 Y 这个字符串成为

'aBC'

字节变量的应用

定义字单元伪指令 DW

DW 伪指令用于分配一个或多个字单元,并可以将它们初始化为指定值

初值表中每个数据一定是字量( Word ),一个字单元可用于存放任何 16 位数据:

一个段地址

一个偏移地址

两个字符

0 ~ 65535 之间的无符号数

- 32768 ~+ 32767 之间的带符号数

data segment ;数据段

count dw 8000h,?,'AB'

maxint equ 64h

number dw maxint

array dw maxint dup(0)

data ends字单元定义实例

字变量和字常量的定义:

WNUM EQU 5678H

; 定义 WNUM 为常量

COUNT DW 20H

; 定义 COUNT 变量,假设在数据段的偏移地址为 10H

字变量和字常量的应用:

MOV AX,[BX+SI+WNUM] ; MOV AX,[BX+SI+5678H]

MOV AX,COUNT ; MOV AX,[0010H]

MOV AX,[SI+COUNT] ; MOV AX,COUNT[SI]

; MOV AX,[SI+10H]

LEA BX,COUNT ; LEA BX,[0010H]

MOV BX,OFFSET COUNT ; MOV BX,0010H

字变量和字常量

定义双字单元伪指令 DD

DD 伪指令用于分配一个或多个双字单元,并可以将它们初始化为指定值

初值表中每个数据是一个 32 位的双字量( Double Word ):

可以是有符号或无符号的 32 位整数

也可以用来表达 16 位段地址(高位字)和 16 位的偏移地址(低位字)的远指针

vardd DD 0,?,12345678h

farpoint DD 00400078h

其他数据单元定义伪指令

定义 3 字伪指令 DF ——用于为一个或多个 6 字节变量分配空间及初始化

6 字节常用在 32 位 CPU 中表示一个 48 位远指针( 16 位段选择器 :32 位偏移地址)

定义 4 字伪指令 DQ ——用于为一个或多个 8 字节变量分配空间及初始化

8 字节变量可以表达一个 64 位整数

定义 10 字节伪指令 DT ——用于为一个或多个 10 字节变量分配空间及初始化

10 字节变量可以表达扩展精度浮点数

例 : 数据定义综合应用

.model small

.stack

.data

bvar DB 16

wvar DW 4*3

dvar DD 4294967295 ; = 232 - 1

qvar DQ ?

DB 1,2,3,4,5

tvar DT 2345 ; 定义了 BCD 码 2345H

abc DB 'a','b','c'

msg DB 'Hello',13,10,'$'

bbuf DB 12 DUP('month')

dbuf DD 25 DUP(?)

CALLDOS EQU <int 21h>

.code

.startup

mov bl,bvar

mov ax,word ptr dvar[0]

mov dx,word ptr dvar[2]

; 取双字到 DX.AX

mov dx,offset msg

mov ah,09h

CALLDOS

.exit 0

end

定位伪指令

定位伪指令控制数据的偏移地址

ORG 参数

ORG 伪指令是将当前偏移地址指针指向参数表达的偏移地址:

ORG 100h ; 从 100h 处安排数据或程序

ORG $+10

; 使偏移地址加 10 ,即跳过 10 个字节空间

MASM 中,符号“ $ ”表示当前偏移地址值

EVEN ; 从偶地址开始

ALIGN n ; 从 n 的整数倍地址开始

安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 安防之家 的产品:
  • 安防监控资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved