汇编 整数变量 浮点数变量 符号常量
数据定义语句
[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>
汇编 整数变量 浮点数变量 符号常量相关推荐
- 【C语言简单说】三:浮点数变量和字符变量(4)
在最开始的时候,我们说过,我们的变量是有类型的对吧?(其实我已经忘记我有没有说)0o.(-. - ) 睡觉 这节我们就来说说,我们之前有整数变量了对吧?那个int就是整数类型的对吧?好了,我们现在就来 ...
- 设有两个16位整数变量A和B,试编写完成下述操作的程序。
设有两个16位整数变量A和B,试编写完成下述操作的程序. (1)若有两个数中一个是奇数,则将奇数存入A中,偶数存入B中. (2)若两个数均为奇数,则两数分别减1,并存回原变量中. (3)若两数均为偶数 ...
- SQL Server 数据类型(整数、浮点数据、日期与时间数据、文本和图形数据类型、货币数据类型、位数据类型、二进制数据类型)
数据类型: 每个属性来自一个域,他的取值必须是域中的值.在SQL中域的概念用数据类型来实现,定义表的各个属性时需要指明其数据类型及长度. 一:系统数据类型 Sql Server 提供的系统 ...
- 4:如何实现对两个整数变量的值进行互换。
package day; public class HomeWork_01 { // 4:如何实现对两个整数变量的值进行互换. public static void main(String[] arg ...
- 【C语言简单说】三:整数变量扩展和输出扩展(3)
今日天气太好了,总感觉昏昏欲睡... 切记请勿荒废时间 小T今日来跟大家说说新建多个整数变量,以及输出多个变量的粒子,代码如下: #include<stdio.h> #include< ...
- 【C语言简单说】三:整数变量和输出扩展(2)
尼玛...简直蛋了个翔... 没保存,,,, ( E___E ) 念昏了头 注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾. 注:我 ...
- c语言100位整数变量声明_C ++程序动态声明一个整数变量并打印其内存地址
c语言100位整数变量声明 Here, we will learn how we can declare an integer variable dynamically and how to prin ...
- 已定义了两个整数变量A和B,完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中(2)若两个数均为奇数,则将两数均加1后存入原变量(3)若两个数均为偶数,则两个变量均不改变。
已定义了两个整数变量A和B,试编写程序完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中: (2)若两个数均为奇数,则将两数均加1后存入原变量: (3)若两个数均为偶数,则两 ...
- java交换两个变量的值_Java中交换两个整数变量的值
需求 如下,我们定义了两个整数变量,并且分别进行了赋值,下面,我们需要实现的就是将x的值赋值给y,将y值赋值给x,实现x和y的值交换: int x = 100; int y = 200; 方法一:使用 ...
最新文章
- java恶意小程序_小程序java实现校验一张图片是否含有违法违规内容security.imgSecCheck...
- Boost:bind绑定的function<>测试程序
- roundrobin来历_Linux系统管理
- iOS之深入解析WKWebView的WebKit源码调试与分析
- 0083-Nocomachns定理
- TP-LINK路由器连接网线上网教程(租房必备)
- python 标签字体大小_这文档动画,怎么用 Python 实现的?
- 遇冷的斗鱼直播,还“斗”得动吗?| 畅言
- mysql er图 linux_ER图设计
- CWMP协议(TR069协议)学习
- Mac应用程序崩溃,无法启动的解决方法
- PR简单压缩视频、音频、调整音频声音大小
- helm --set的使用示例及基本使用命令整理
- java 打砖块算法_打砖块java代码详细
- Bokeh—通过plotting绘制图形
- 若依登录和JWT验证的大体流程和对redis的使用
- 云麦体脂秤华为体脂秤_如果是一个真正的体脂秤就好了:华为智能体脂秤
- PostMan接口参数化、接口返回值传递
- 【无标题】每个人女人,都需要一面黑色的镜子
- 第一章: 微型计算机组成结构