文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 555
阅读 9
收藏 0
点赞 0
评论 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 个字符.

© 著作权归作者所有

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

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

IIOWE ⋅ 2014/10/01 ⋅ 3

为什么破解要学win32汇编?

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

IIOWE ⋅ 2014/10/02 ⋅ 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

C语言中volatile关键字的学习

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。 用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。 没有...

YHZhu ⋅ 2010/07/28 ⋅ 1

Win32汇编语言核心

一. Win32汇编源程序的结构 hello world程序 .386 .model flat, stdcall option casemap: none include windows.inc include user32.inc includelib user32.lib include kernel32.inc inclu......

呼噜呼噜睡翻天 ⋅ 2014/04/02 ⋅ 0

win mobile 5播放mp3音乐的方法(1)--libmad库的移植篇

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

鉴客 ⋅ 2011/10/23 ⋅ 0

Win32汇编开发环境介绍和RadAsm简明教程

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

nothingfinal ⋅ 2009/08/01 ⋅ 0

AT&T汇编语言——工具及程序组成

1.开发工具 在汇编语言中,用到的工具主要用下面几个: 汇编器、连接器、调试器、编译器 由于我在这里的是AT&T汇编语言。所以工具下也都是gnu下的那些。 1.1 汇编器(as) 汇编器有非常多,mas...

技术mix呢 ⋅ 2017/12/06 ⋅ 0

编程学习基本路线指南(windows)

 1:如果你能够熟练的使用Windows的话,你就可以开始你的程序生涯了!   2:首先从C语言开始。有的朋友可能认为C语言太难了,应该从VB开始。虽然,对于一个初学者来说,用一些控件堆砌成一...

zbing3 ⋅ 2010/01/31 ⋅ 0

C语言extern引用AT&T汇编中的变量,任意转换类型

今天研究出了一个小问题,在C语言里引用汇编的变量,会是什么结果,汇编中的变量没有像C语言中int类型那样的类型约束,可以把数据当作任何类型处理,那么传到C语言中我们应该当作什么类型处理...

Kernel开发者 ⋅ 2015/04/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 20分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 40分钟前 ⋅ 0

a href="#"

<a href="#">是链接到本页,因为你有的时候需要有个链接的样式,但是又不希望他跳转,这样写,你可以把这个页面去试试

颖伙虫 ⋅ 47分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 47分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 55分钟前 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部