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扩展精度实数
数据定义语句
[变量名] 数据定义伪指令初始值列表
定义BYTE和SBYTE数据(定义字节)
Var BYTE/SBYTE 初始值或?[不初始值,运行时赋值]
多个初始值
List BYTE 10,20,30,40
List BYTE 10,20,30,50[BYTE数组]
BYTE 50,60,70,80
List1 BYTE 10,20h,’A’,00100010b [初始值可以是不同的基数]
定义字符串
Str1 BYTE “HelloWord !”,0 [定义字符串,并要以null(0)结尾]
DUP操作符
为变量分配空间
Eg:BYTE 20 DUP(0) ;20个字节,全部初始化为0
定义WORD和SWORD数据(定义字)
Eg:word1 WORD 65535
WordList WORD 1,2,3,4,5 ;数组
Word2 WORD 5 DUP(?) ;5个未初始化的值
定义DWORD和SDWORD数据(定义双字)
Eg:
定义QWORD数据(8字节)
Eg:
定义TBYTE数据(10字节)
Eg:
定义实数
Eg:
未初始化数据的申明
.DATA ? 伪指令用于申明未初始化数据
Eg: 。data
SmallDWORD 10 DUP(0)
。data ?
LargeDWORD 10 DUP(?)
符号常量
给数值赋值,在程序中可以给数值重新赋值
Eg: COUNT=500
Mov ax,COUNT
计算数组和字符串大小
MASM使用$运算符返回当前程序语句的地址偏移值
Eg:list BYTE 10,20,30
ListSize=($ - list);listSize必须在list之后,不然会包含其他地址
如果数组中的每个元素都是16位的字,以字节计算数组总长度必须除以2才能得到数组的元素
Eg:list WORD 1000h,2000h,3000h
listSize=($-list)/2
如果每个元素是4字节长度(如:DWORD) 那么要除以4才是元素个数
EQU伪指令
赋值指令,同于=号,但在程序中不能重新赋值。 意思是 为一个有效的量 赋予一个名字
TEXTEQU
为一个字符串赋予名字
32位系统编写16位程序
1:引用:INCLUDE Irvine16.inc
2:插入: mov as,@data
Mov ds,as
- 1:汇编基本元素
- 游戏基本元素1
- 汇编寄存器基本指令
- 基本汇编指令
- 基本汇编指令集
- 基本汇编指令
- 基本汇编指令集
- 汇编 基本框架
- 汇编基本指令
- 嵌入汇编基本语法
- 汇编的基本语法
- 基本汇编指令
- 基本汇编指令
- 嵌入式汇编基本语法
- 反汇编基本算法
- 基本汇编指令
- 第1章 C的基本元素
- 2.1.1保留-基本元素.html
- 孟祥青:未来10年是中国脆弱的10年
- Information Systems Security Assessment – Open information security framework
- 我的第一篇网上文章
- memcached系列之1:memcached基础知识简介(为什么要使用memcached做缓存服务器)
- [转]Spring2+struts2+ibatis整合
- 1:汇编基本元素
- 通过内存配置来优化SQL Server的性能
- WINDOWS API &&VC SKILL(一)
- 1:开发_Oracle 基本结构
- Eclipse中HashMap/Hashtable出现警告Type safety
- 2:开发_SQL Plus基础
- [建国60周年]李四光——地质学家
- 3:开发_SQL基础
- 在Eclipse中编译java程序时提示server not configured properly解决方案