做开发有几年了,一直忙于开发各种项目,熟悉并学习各种框架、语言的应用。虽说当今互联网大爆发,各种优秀的语言、技术更迭非常快,只学习应用都不一定跟得上脚步,但是我觉得将一门语言吃透还是很有必要的——毕竟技术是学不完的。
不废话先搭建开发环境(vs 开发 汇编——为学习IL做准备):
1、安装visual studo 2019,并安装c++ 开发模块。
2、配置 vs 高亮显示代码。(在扩展中搜索安装asmDude)
效果:
3、创建一个空的project
4、添加一个c++文件并修改后缀名为.asm:
到此你可以写代码啦。
上一段代码:
; AddTwo.asm - adds two 32-bit integers.
.386;汇编器生成 intel 80386 指令集
.model flat,stdcall ;伪指令 32 位程序总是使用平面(flat)存储模式,它与处理器的保护模式相关联,stdcall 怎样管理运行时堆栈
.stack 4096 ;.STACK 伪指令,它告诉汇编器应该为程序运行时堆栈保留多少内存字节
ExitProcess PROTO,dwExitCode:DWORD ;声明一个方法 ExitProcess, ExitProcess 的输入参数名称为 dwExitCode
.code ;.CODE 伪指令标记一个程序代码区的起点,代码区包含了可执行指令。
main PROC
mov eax, 5
add eax, 6
INVOKE ExitProcess,0;退出进程
main ENDP ;ENDP 伪指令标记一个过程的结束
END main ;END 伪指令标记一个程序的结束
现在为了学习c#,不得已只能开始学习汇编,否则il看不懂啊。
以上代码都有注释。
.386 命令的意思为汇编器生成 intel 80386 指令集
.model flat,stdcall 是伪指令作用 是标识32 位程序总是使用平面(flat)存储模式,它与处理器的保护模式相关联,stdcall 怎样管理运行时堆栈。
.stack 4096 ;是STACK 伪指令,它告诉汇编器应该为程序运行时堆栈保留多少内存字节
.CODE 是伪指令标记一个程序代码区的起点,代码区包含了可执行指令。
先写到这里,快上班啦~
原创,转载请注明出处。