汇编语言学习 06之 汇编语言程序基础

主程序

汇编语言的基本工作流程如下,以例子说明

main ASM
   mov eax, 1 
   add eax, 2

   INVOKE ExitProcess, 0
main  ENDP

这段程序的每一行命令解释如下:
第 1 行开始 main 程序(主程序),即程序的入口;
第 2 行将数字 1送入 ax 寄存器;
第 3 行把 2 加到 ax的值上,得到新值 3;
第 5 行调用 Windows 服务(也被称为函数)ExitProcess 停止程序,并将控制权交还给操作系统;
第 6 行是主程序结束的标记。

增加变量

.data
sum DWORD 0
.code
main ASM
   mov eax, 1 
   add eax, 2
   mox sum, eax

   INVOKE ExitProcess, 0
main  ENDP

变量 sum 在第 2 行进行了声明,其大小为 32 位,使用了关键字 DWORD。
.code 和 .data 伪指令标记的代码和数据区,被称为段。即,程序有代码段和数据段。

汇编语言常量

整数常量

[{+|-}] digits [radix]

不同进制的整数声明如下:
十进制:31 或31d
二进制: 1011b
八进制: 41q 或41o
十六进制: 1Ah, 5h

常用算术符号

算术符号

字符常量

字符常量 (character literal) 是指,用单引号或双引号包含的一个字符。汇编器在内存中保存的是该字符二进制 ASCII 码的数值。如: 'B ’ “B”

保留字

主要包括指令助记符,寄存器名称、伪指令、属性,运算符和预定义符号

伪指令

伪指令 (directive) 是嵌入源代码中的命令,由汇编器识别和执行。伪指令不在运行时执行,但是它们可以定义变量、宏和子程序;为内存段分配名称,执行许多其他与汇编器相关的日常任务。

如上述代码例子中的 .data.code .

指令

label

label是一种标识符,是指令和数据的位置标记。标号位于指令的前端,表示指令的地址。同样,标号也位于变量的前端,表示变量的地址。标号有两种类型:数据标号和代码标号

指令助记符

常见助记符如下:

助记符

发布了16 篇原创文章 · 获赞 0 · 访问量 321

猜你喜欢

转载自blog.csdn.net/qq_43156233/article/details/103833218