zoukankan      html  css  js  c++  java
  • 汇编语言数据类型与声明

     

    类型描述类型缩写位数字节数浮点数有效位数值范围
    字节 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 个字符.
     
  • 相关阅读:
    配置文件或者模板中的占位符替换工具类
    [C++设计模式] composite 组合模式
    集群通信组件tribes之集群的平行通信
    hibernate配置
    【Cocos2dx】Windows平台下Cocos2dx 2.x的下载、安装、配置,打造自己的Helloworld
    Codeforces Round #250 (Div. 2)
    一个不断复读且并没什么卵用的我这一种人的 学习观
    2015年创业中遇到的技术问题:81-90
    2015年创业中遇到的技术问题:81-90
    下载好一个android软件之后,怎样自动提示安装?
  • 原文地址:https://www.cnblogs.com/cloud2rain/p/3010336.html
Copyright © 2011-2022 走看看