1:汇编基本元素

来源:互联网 发布:王者荣耀 账号数据互通 编辑:程序博客网 时间:2024/06/05 06:18

汇编基本元素

         整数常量:h:十六进制    r:编码实数   q/o:八进制   d/t:十进制  b/y:二进制

         整数表达式:()[括号];++,--[一元加减];*,/[乘除];MOD[取余数];+,-[加减]

         实数常量:

         字符常量:’’

         字符串常量:””

         保留字:系统关键字

         标识符:程序员选择的名字,用来标识变量、常量、过程或代码符号

伪指令:在源代码中,由编译器识别并执行相应动作的命令,程序中并不执行。用于定义变量、宏以及过程。可用于定义命名段以及执行许多其他与汇编器相关的薄记任务

                Eg:      myVar DWORD 26[定义常量]

                           .data[定义数据段]

指令:格式    [标号:]   指令助记符  操作数列表   [;注释]

                            段别名   命令名   目的操作数 源操作数  注释

                标号:充当指令和数据位置标记的助记符,标识该指令和变量的地址

                            数据标号:标识变量的位置

                                     Eg                   count       DWORD  100

                                                        Array      DWORD  1024,2048

                                                                                    DWORD  4096,8192                [有点像数组]

                                     代码标号:用做跳转和循环指令的目标地址

                                               Eg                   target:

                                                                           Mov……..

                             指令助记符:

                                     标识一条指令

         空操作:NOP 占用一个字节的存储 什么也不做

 

定义数据

         内部数据类型

                   BYTE              8位无符号整数

                   SBYTE            8位有符号整数

                   WORD           16位无符号整数(实地址模式下用做近指针)

                   SWORD         16位有符号整数

                   DWORD        32位无符号整数(实地址模式下用做近指针)

                   SDWORD      32位有符号整数

                   FWORD         48位整数(实地址模式下用做远指针)

                   QWORD        64位整数

                   TBYTE           80位(10字节)整数

                   REAL4           32位(4字节)IEEE短实数

                   REAL8           64为(8字节)IEEE长实数

                   REAL10         80位(10字节)IEEE扩展精度实数

         数据定义语句

                   [变量名]  数据定义伪指令初始值列表

        

         定义BYTESBYTE数据(定义字节)

                   Var   BYTE/SBYTE  初始值或?[不初始值,运行时赋值]

                   多个初始值

                            List          BYTE                  10203040

                           

                            List   BYTE                10203050[BYTE数组]

                                     BYTE                  50607080

                  

                            List1           BYTE    1020h’A’00100010b [初始值可以是不同的基数]

 

         定义字符串

                            Str1           BYTE                  “HelloWord ”,0  [定义字符串,并要以null(0)结尾]

         DUP操作符

                   为变量分配空间

                            EgBYTE  20 DUP(0)    20个字节,全部初始化为0

         定义WORDSWORD数据(定义字)

                   Egword1  WORD 65535

                            WordList  WORD  12345               ;数组

                            Word2      WORD  5   DUP(?)                       5个未初始化的值

         定义DWORDSDWORD数据(定义双字)

                   Eg

         定义QWORD数据(8字节)

                   Eg

         定义TBYTE数据(10字节)

                   Eg

         定义实数

                   Eg

 

         未初始化数据的申明

                   .DATA ?  伪指令用于申明未初始化数据

                            Eg                   data

                                                        SmallDWORD 10 DUP0

                                               data

                                                        LargeDWORD 10 DUP(?)

 

        

符号常量

         给数值赋值,在程序中可以给数值重新赋值

                   Eg                   COUNT=500

                                      Mov  axCOUNT

计算数组和字符串大小

         MASM使用$运算符返回当前程序语句的地址偏移值

                   Eglist    BYTE  102030

                            ListSize=$ - listlistSize必须在list之后,不然会包含其他地址

     如果数组中的每个元素都是16位的字,以字节计算数组总长度必须除以2才能得到数组的元素

              Eglist  WORD 1000h2000h3000h

                       listSize=$-list/2

     如果每个元素是4字节长度(如:DWORD 那么要除以4才是元素个数

 

EQU伪指令

     赋值指令,同于=号,但在程序中不能重新赋值。 意思是 为一个有效的量 赋予一个名字

 

TEXTEQU

     为一个字符串赋予名字

 

32位系统编写16位程序

         1:引用:INCLUDE  Irvine16.inc

         2:插入:       mov as,@data

                                    Mov  ds,as

原创粉丝点击