数据定义语句

[name] directive initializer [, initializer]

类型 用法
BYTE 8位无符号整数,B代表字节
SBYTE 8位有符号整数,S代表字节
WORD 16位无符号整数
SWORD 16位有符号整数
DWORD 32位无符号整数,D代表双(字)
SDWORD 32位有符号整数,SD代表有符号双(字)
FWORD 48位整数(保护模式的远指针)
QWORD 64位整数,Q代表四(字)
TBYTE 80位整数,T代表10字节
REAL4 32位IEEE短实数
REAL8 64位IEEE长实数
REAL10 80位IEEE扩展实数
count dword 12345
  • 名字

    • 符合标识符的规范
  • 伪指令

    伪指令 用法
    DB 8位整数
    DW 16位整数
    DD 32位整数或实数
    DQ 64位整数或实数
    DT 80位整数
  • 初始值

    • 至少有一个初始值,即使值为0;若有多个值,用,隔开;若不进行初始化,则用?代替

byte和sbyte

value1 byte 'A'
value2 byte 0
value3 byte 255
value4 sbyte -128
value5 sbyte +127
value6 byte ?
val1 db 255
val2 db -128;多初始值
list byte 10, 20, 30, 40
list1 byte 10, 20, 30, 40byte  50, 60, 70, 80
list2 byte 10, 32, 41h, 00100010b
list3 byte 0Ah, 20h, 'A', 22h;字符串
greeting1 byte "Good afternoon", 0
greeting2 byte 'Good afternoon', 0
greeting3 byte "Welcome to the Encryption Demo program "byte "created by Kip Irvine.", 0dh, 0ahbyte "If you wish to modify this program, please "byte "send me a copy.", 0dh, 0ah, 0 ; CR/LF(回车换行)     greeting4 byte "welcome to the Encryption Demo program "
;等价
greeting4 \byte "welcome to the Encryption Demo program";DUP操作符
; byte 20 dup(0) ; 20个字节,初始化为0
; byte 20 dup(?) ; 20个字节,未初始化
; byte 4 dup('stack') ; 20个字节:'stackstackstackstack'

word和sword

word1 word 65535
word2 sword -32768
word3 word ?
val1 dw 65535
val2 dw -32768
myList word 1, 2, 3, 4, 5
array word 5 dup(?) ; 5个数值,未被初始化

dword和sdword

val1 dword 12345678h
val2 sdword -2147483648
val3 dword 20 dup(?)
val1 dd 12345678h
val2 dd -2147483648pVal dword val3myList dword 1, 2, 3, 4, 5

qword

quad1 qword 1234567812345678h
quad2 dq 1234566443356776h

压缩BDC(TBYTE)数据

  • 除了最高字节外,每个字节存放两个十进制数,高4位存一个,低4位存一个
  • 最高位存放该数的符号,80h为负数,00h为正数
  • -999, 999, 999, 999, 999, 999~+999, 999, 999, 999, 999, 999
十进制数值 存储字节
+1234 34 12 00 00 00 00 00 00 00 00
-1234 34 12 00 00 00 00 00 00 00 80
intVal tbype 80000000000000001234h
; intVal tbyte -1234 ;无效.data
posVal real8 1.5
bcdVal tbyte ?
.code
fld posVal ; 加载到浮点堆栈
fbstp bcdVal ; 向上舍入到2,压缩BCD码值

浮点数据

rVal1 real4 -1.2
rVal2 real8 3.2E-260
rVal3 real10 4.6E+4096
shortArray real4 20 dup(0.0)rVal1 dd -1.2
rVal2 dq 3.2E-260
rVal3 dt 4.6E+4096
数据类型 有效数字 近似范围
短实数 6 1.18∗10−381.18 * 10^{-38}1.18∗10−38~3.40∗10383.40 * 10^{38}3.40∗1038
长实数 15 2.23∗10−3082.23 * 10^{-308}2.23∗10−308~1.79∗103081.79 * 10^{308}1.79∗10308
扩展精度实数 19 3.37∗10−49323.37 * 10^{-4932}3.37∗10−4932~1.18∗1049321.18 * 10^{4932}1.18∗104932

小端顺序

  • 低字节存放在低位置,高字节存放在高位置

声明未初始化数据

  • 减少编译程序的大小

    .data?
    bigArray dword 5000 dup(?)
    

代码与数据混合

.code
mov eax, ebx
.data
temp dword ?
.code
mov temp, eax

符号常量

  • =

    name = expression

    COUNT= 500

    • 当前地址计数器 $

    selfPtr dword $

    • 键盘定义

    Esc_key = 27

    • array dword COUNT dup(0)

    • 重定义

    COUNT = 5
    COUNT = 10
    
    • 计算数组和字符串的大小
    list byte 10, 20, 30, 40
    ListSize = ($ - list)myString byte "This is along string, containing"byte "any number of characters"
    myString_len = ($ - myString)list word 1000h, 2000h, 3000h, 4000h
    ListSize = ($ - list) / 2list word 10000000h, 20000000h, 30000000h, 40000000h
    ListSize = ($ - list) / 4
    
  • equ

    name equ expression【有效整数表达式】

    name equ symbol【已定义的符号】

    name equ <text>【任何文本】Pi equ 3.1415926

    pressKey equ <"Press any key to continue...", 0>
    .data
    prompt byte pressKeymatrix1 equ 10 * 10
    matrix2 equ <10 * 10>
    .data
    M1 word matrix1
    M2 word matrix2
    
    • 不能重定义
  • textequ

    name textequ <text>

    name textequ texmacro

    name textequ %constExpr

    continueMsg textequ <"Do you wish to continue (Y/N)?">
    .data
    prompt1 byte continueMsgrowSize = 5
    count textequ %(rowSize * 2)
    move textequ <mov>
    setupAL textequ <move al, count>
    

汇编 整数变量 浮点数变量 符号常量相关推荐

  1. 【C语言简单说】三:浮点数变量和字符变量(4)

    在最开始的时候,我们说过,我们的变量是有类型的对吧?(其实我已经忘记我有没有说)0o.(-. - ) 睡觉 这节我们就来说说,我们之前有整数变量了对吧?那个int就是整数类型的对吧?好了,我们现在就来 ...

  2. 设有两个16位整数变量A和B,试编写完成下述操作的程序。

    设有两个16位整数变量A和B,试编写完成下述操作的程序. (1)若有两个数中一个是奇数,则将奇数存入A中,偶数存入B中. (2)若两个数均为奇数,则两数分别减1,并存回原变量中. (3)若两数均为偶数 ...

  3. SQL Server 数据类型(整数、浮点数据、日期与时间数据、文本和图形数据类型、货币数据类型、位数据类型、二进制数据类型)

    数据类型: 每个属性来自一个域,他的取值必须是域中的值.在SQL中域的概念用数据类型来实现,定义表的各个属性时需要指明其数据类型及长度. 一:系统数据类型       Sql Server 提供的系统 ...

  4. 4:如何实现对两个整数变量的值进行互换。

    package day; public class HomeWork_01 { // 4:如何实现对两个整数变量的值进行互换. public static void main(String[] arg ...

  5. 【C语言简单说】三:整数变量扩展和输出扩展(3)

    今日天气太好了,总感觉昏昏欲睡... 切记请勿荒废时间 小T今日来跟大家说说新建多个整数变量,以及输出多个变量的粒子,代码如下: #include<stdio.h> #include< ...

  6. 【C语言简单说】三:整数变量和输出扩展(2)

    尼玛...简直蛋了个翔... 没保存,,,, ( E___E ) 念昏了头 注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾. 注:我 ...

  7. c语言100位整数变量声明_C ++程序动态声明一个整数变量并打印其内存地址

    c语言100位整数变量声明 Here, we will learn how we can declare an integer variable dynamically and how to prin ...

  8. 已定义了两个整数变量A和B,完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两数均加1后存入原变量(3)若两个数均为偶数,则两个变量均不改变。

    已定义了两个整数变量A和B,试编写程序完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中: (2)若两个数均为奇数,则将两数均加1后存入原变量: (3)若两个数均为偶数,则两 ...

  9. java交换两个变量的值_Java中交换两个整数变量的值

    需求 如下,我们定义了两个整数变量,并且分别进行了赋值,下面,我们需要实现的就是将x的值赋值给y,将y值赋值给x,实现x和y的值交换: int x = 100; int y = 200; 方法一:使用 ...

最新文章

  1. java恶意小程序_小程序java实现校验一张图片是否含有违法违规内容security.imgSecCheck...
  2. Boost:bind绑定的function<>测试程序
  3. roundrobin来历_Linux系统管理
  4. iOS之深入解析WKWebView的WebKit源码调试与分析
  5. 0083-Nocomachns定理
  6. TP-LINK路由器连接网线上网教程(租房必备)
  7. python 标签字体大小_这文档动画,怎么用 Python 实现的?
  8. 遇冷的斗鱼直播,还“斗”得动吗?| 畅言
  9. mysql er图 linux_ER图设计
  10. CWMP协议(TR069协议)学习
  11. Mac应用程序崩溃,无法启动的解决方法
  12. PR简单压缩视频、音频、调整音频声音大小
  13. helm --set的使用示例及基本使用命令整理
  14. java 打砖块算法_打砖块java代码详细
  15. Bokeh—通过plotting绘制图形
  16. 若依登录和JWT验证的大体流程和对redis的使用
  17. 云麦体脂秤华为体脂秤_如果是一个真正的体脂秤就好了:华为智能体脂秤
  18. PostMan接口参数化、接口返回值传递
  19. 【无标题】每个人女人,都需要一面黑色的镜子
  20. 第一章: 微型计算机组成结构

热门文章

  1. linux高编线程-------线程的创建,终止
  2. 西南民大oj(矩阵快速幂)
  3. Gamma校正及其OpenCV实现
  4. 运维中心建设--数据管理
  5. 架构无小事:QQ碰微信 贴吧遇微博
  6. 活学活用,CSS清除浮动的4种方法
  7. SCSM 2012Orchestrator 2012 虚拟机自动交付测试
  8. char,TCHAR,WCHAR区别
  9. (转)让你受益终身的10个Word实用技巧
  10. SQL查询月初与月末时间