汇编语言基础

1. 数据格式

26d 十进制
1Ah 十六进制
42/o/g 八进制

以字母开头的十六进制常量前面必须加一个0,以防止汇编器将其解释为标识符

2. 尽量在表达式中使用圆括号显式表明运算顺序

3. 汇编器大量使用@符号做为预定义符号的前缀,因此应尽量避免在自己定义的标志符前用@,但@@myfile为有效

4. 指令

mov
add
sub
mul
jmp
call

5. 汇编程序模板

; 注释
;注释

INCLUDE Irvine32.inc

.data

;在此插入变量

.code

main PROC

; 在此插入可执行代码
exit

main ENDP
; 在此插入其它子程序
END main

6.

BYTE 8位无符号数
SBYTE 8位有符号数
WORD 16位无符号数
SWORD 16位有符号数

DWORD 32
SDWORD 32

FWORD 48
QWORD 64

TBYTE 80
REAL4 32位短实数
REAL8 64位长实数

REAL10 80位实数

7. 数据定义伪指令

DB 定义8位有符号或无符号整数
DW 定义16位有符号或者无符号数

DD 32bit

DQ 64bit
DT 80bit

8 初始值有多个的话,以逗号分割,不想初始化,可以使用符号"?"

9. 数组

list BYTE 10,20,30,40

0000: 10
0001: 20
0002: 30
0003: 40

可以使用的不同的数据格式

list BYTE 10,32,41h,00100010b

10, 定义字符串, 以0空字符串结尾的

greeting BYTE "GOOD AFTERNOON",0

每个字符占一个字节

字符串可以多行,

greet BYTE "TEST"
BYTE "LLL"
BYTE "DDD", 0dh,0ah,0

0dh,0ah,回车换行

11 DUP

DUP 操作符使用一个常量为多个数据项分配存储空间

BYTE 20 DUP(0), 20个字节,全部等于0

BYTE 20 DUP(?), 20个字节,未初始化

BYTE 4 DUP("STACK" 20个字节 “STACKSTACKSTACKSTACK"

12 mylist WORD 1,2,3,4,5 间隔为2

0000:1
0002:2
0004:3
0006:4
0008:5

mylist DWORD 1,2,3,4,5 间隔为4

13, 小尾顺序, 最低的有效字节存储在地址值最小的地址单元里
12345678h

0000 78
0001 56

大尾方式

0000 12
0001 34

14 未初始化的数据

.DATA? 伪指令可用于声明未初始化的数据

15 cout = 500

在重新编译时,使用count的地方都被替换成500

16, 计算数组的大小

list BYTE 10,20,30,40
listsize = ($-list)/数据类型间隔
byte 为1
WORD 为2
DWORD 为4

计算大小要紧跟数组声明后

以下错误

list BYTE 10,20,30
var BYTE 20 DUP(?)
listzie=($-list)/1

listsize 已经包含了var的存储空间

17 EQU TEXTEQU

PI EQU <3.1415>

presskey EQU <"SSSS">

.data
prompt BYTE presskey

continue TEXTEQU <"DO YOU WIANT ">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值