文档章节

学 Win32 汇编[5]: 数据类型与声明

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 555
阅读 9
收藏 0

类型描述 类型 缩写 位数 字节数 浮点数有效位 数值范围
字节 BYTE DB 8 1   0..255
有符号字节 SBYTE DB 8 1   -128..127
WORD DW 16 2   0..65535
有符号字 SWORD DW 16 2   -32768..32767
双字 DWORD DD 32 4   0..4294967295
有符号双字 SDWORD DD 32 4   -2147483648..2147483647
远字 FWORD DF 48 6  
四字 QWORD DQ 64 8  
十字节 TBYTE DT 80 10  
单精度浮点数 REAL4 32 4 6 1.18*10-38..3.40*1038
双精度浮点数 REAL8 64 8 15 2.23*10-308..1.79*10308
10字节浮点数 REAL10 80 10 19 3.37*10-4932..1.18*104932

注: 类型缩写(譬如用 db 代替 byte)不能用于局部变量.

进制表示(其中的 d t b y q o h 不区分大小写):
; Test5_1.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.data
    v1 dd 10   ;十进制
    v2 dd 10d  ;十进制(Decimal)
    v3 dd 10t  ;十进制
    v4 dd 10b  ;二进制(Binary)
    v5 dd 10y  ;二进制
    v6 dd 10q  ;八进制
    v7 dd 10o  ;八进制(Octal)
    v8 dd 10h  ;十六进制(Hexadecimal)
    v9 dd 0ah  ;十六进制; 如果第一位不是数字应前置 0
    
.code
start:
    PrintDec v1  ;10
    PrintDec v2  ;10
    PrintDec v3  ;10
    PrintDec v4  ;2
    PrintDec v5  ;2
    PrintDec v6  ;8
    PrintDec v7  ;8
    PrintDec v8  ;16
    PrintDec v9  ;10
    ret
end start

 
 
 
 
 

 

 

  

浮点数:
; Test5_2.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.data
    v1 real8 3.14
    v2 real8 3.
    v3 real8 3.14E2
.code
start:
    PrintDouble v1  ;3.14
    PrintDouble v2  ;3
    PrintDouble v3  ;314
    ret
end start

 
 
 
 
 

 

 

  

常量、可赋初值的变量、不赋初值的变量:
; Test5_3.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.const ;常量
    v1 dd 11
    
.data ;可赋初值的变量, 其中也可声明不不赋初值的变量
    v2 dd 22
    v3 dd ?
    
.data? ;不赋初值的变量
    v4 dd ?

.code
start:
    PrintDec v1  ;11
    PrintDec v2  ;22
    PrintDec v3  ;0
    PrintDec v4  ;0
    mov eax, 33
    mov v3, eax
    mov eax, 44
    mov v4, eax
    PrintDec v1  ;11
    PrintDec v2  ;22
    PrintDec v3  ;33
    PrintDec v4  ;44
    ret
end start

 
 
 
 
 

 

 

  

汇编中的标识符(变量名、常量名、过程名、标号)可以使用下面符号:
A-Z a-z 0-9 _ @ $ ?

但第一个字符不能是数字(0-9), 长度不要超过 239 个字符.

本文转载自:http://www.cnblogs.com/del/archive/2010/04/04/1704218.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
win32汇编和x64汇编?

win32汇编升到winx64汇编,转型容易吗?我指的是会win32汇编,还学x64汇编吗?我是初学,能不能直接学x64汇编语言,请推荐本书?

IIOWE
2014/10/01
833
3
为什么破解要学win32汇编?

听说破解要学win32汇编,写壳也要用win32汇编?为什么呢?不学不能学破解吗?

IIOWE
2014/10/02
2.3K
13
[Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

3D相关开发 [direct-X] 1、direct-X最小框架 [OpenGL] 1、环境搭建及最小系统 [OpenGL] 2、企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [51单片机] 1602液晶显示控制代码 [51单片机] 1...

史迪奇2号
2017/08/01
0
0
win mobile 5播放mp3音乐的方法(1)--libmad库的移植篇

win mobile 5上面播放mp3似乎已经有了可以依赖于win mobile提供的 multi-media播放器的调用方法。这种显而易见的方法,我认为缺少一些 主动性,只能微软怎么做,咱就怎么做。如果想做出个性化...

鉴客
2011/10/23
809
0
Win32汇编开发环境介绍和RadAsm简明教程

Win32汇编开发环境介绍和RadAsm简明教程 现在很多朋友都在学习汇编语言,一方面汇编语言是大学计算机课程的必修课,另一方面则是为了从其它语言转到汇编语言来,无论什么原因,我认为学习汇编...

nothingfinal
2009/08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis常用命令

keys 我把这个命令放在第一位,是因为笔者曾经做过的项目,以及一些朋友的项目,都因为使用keys这个命令,导致出现性能毛刺。这个命令的时间复杂度是O(N),而且redis又是单线程执行,在执行k...

谢思华
40分钟前
2
0
关于css宽度分离

所谓宽度分离就是width 属性不与影响宽度的 padding/border(有时候包括 margin)属性共存 例如: .box{width:200px;padding:20px;border:1px solid;} 为何要做宽度分离 一说到分离就是为了好...

莫西摩西
51分钟前
1
0
Linux常用命令

###############常用命令说明############################## cat /proc/version 显示内核的版本 mv dir1 new_dir 重命名/移动 一个目录 rm -rf a.txt b.txt c.txt 删除多个文件 chmod 777 ......

lyle_luo
58分钟前
3
0
全国地区代码科普

全国地区代码表 天津市 地区代码 地区名称 1100 天津市 辽宁省 地区代码 地区名称 2210 沈阳市 2210 法库县 2210 康平县 2210 辽中县 2210 新民市 2220 大连市 2222 普兰店市 2223 庄河市 22...

恋码之子
58分钟前
1
0
DbForge Schema Compare for MySQL入门教程:生成比较报告

【dbForge Schema Compare for MySQL下载】 当架构比较完成后,您可以生成比较报告以保留架构更改的记录。 1. 在“Comparison” 菜单中,单击“Generate Comparison Report” 。将打开“Gen...

Miss_Hello_World
59分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部