




资源介绍
视频数量:29个
总时长:5小时11分
课程介绍:
NASM汇编语言编程实战
你有没有想过,当你的程序在计算机里运行时,CPU到底在做什么?每一行代码最终都变成了一条条机器指令,而理解这些指令的语言,就是汇编语言。这门课会带你从零开始,用NASM编译器真正掌握64位和32位汇编语言的编程技能。
课程首先带你搭建开发环境,安装NASM assembler,然后马上写出第一个hello world程序。你会亲眼看到自己写的汇编代码是怎么变成可执行文件的,这种从源代码到程序运行的完整过程,理解计算机底层工作原理的人才能真正体会其中的乐趣。
接下来进入核心基础部分。你会学到寄存器是什么,CPU内部是怎么存储和操作数据的。MOV指令让你在寄存器之间搬运数据,JMP指令控制程序的执行流向,Call和ret指令让你学会如何调用子程序。课程专门花时间讲解了栈这个关键概念,理解了栈,你就理解了函数调用和参数传递的本质。然后是CMP比较指令和条件跳转,这是程序做判断的基础——JE、JNE、JG、JB这些跳转指令,让你的程序能够根据不同条件走不同的路。数学运算部分涵盖add、sub、mul、div指令,处理加减乘除全都能搞定。
学完基础后进入混合编程的世界。你会看到C语言编译器生成的汇编代码是什么样子,理解编译器背后做了什么。然后重点学习怎么把汇编和C代码混合起来用——在汇编里写一个sum求和函数让C代码调用,用RDI和RSI这两个寄存器在内存之间复制数据,从汇编里访问C语言的指针、数组和结构体。这些内容是高级汇编编程的核心技能,让你能够在实际项目中把汇编嵌入到C程序里,取两者之长。
课程还安排了GUI图形界面编程的例子,包括亲手写一个计算器程序。浮点数的处理也有专门讲解,因为涉及到科学计算或者游戏开发的时候,浮点运算必不可少。
最后一部分切换到32位汇编。你会看到32位和64位架构在编译器行为上的差异,包括调用约定的不同、指针大小的区别、如何传递结构体参数、结构体的内存对齐问题怎么处理。掌握了这部分内容,你就是一个能够跨架构编程的全能选手了。
学完这门课,你就能独立写出处理浮点运算的程序,能够创建带有图形界面的应用,能够在C代码里调用你自己写的汇编函数,能够理解编译器生成的汇编代码并据此优化程序性能。无论是想深入理解计算机系统,还是做逆向工程、性能优化、内核开发,这门汇编语言基础都会成为你最扎实的支撑点。