汇编
文章平均质量分 79
WolvenSec
这个作者很懒,什么都没留下…
展开
-
汇编:调用Win32 API
在32位汇编程序中使用 Win32 API 是很常见的,特别是在开发 Windows 应用程序时调用的频率很高,Win32 API 提供了访问 Windows 操作系统功能的接口,包括窗口、消息处理、文件操作、网络通信等等。调用 Win32 API 函数:使用适当的调用约定(例如 stdcall)来调用 Win32 API 函数,并正确传递参数。声明外部函数:声明要调用的 Win32 API 函数,以便汇编器知道函数的名称和参数类型。:这两行代码定义了字符串,用于作为消息框的文本和标题。原创 2024-06-01 16:23:57 · 246 阅读 · 0 评论 -
汇编:调用C函数
在32位汇编程序中可以调用C函数;这种做法在很多情况下是有用的,尤其是在汇编程序需要与C代码进行交互或利用C语言的库函数时。②系统调用:在汇编中,系统调用是通过软中断(int 0x80)来执行的,一些系统调用需要更复杂的参数传递和处理,这时可以使用C函数来简化处理。③特殊硬件的访问:在一些特殊的硬件平台上,需要用到特定的C库函数来进行底层硬件访问。②调用C函数:使用适当的调用约定(例如stdcall)来调用C函数,并正确传递参数。①声明C函数:在汇编程序中声明C函数,以便汇编器知道函数的名称和参数类型。原创 2024-05-31 13:59:14 · 477 阅读 · 0 评论 -
汇编:x86汇编环境搭建与基础框架(32位)
32位汇编代码编写环境:Visual Studio(笔者用的版本为2017);先来说一下在Visual Studio 2017中编写汇编代码的准备操作:①创建空项目②设置项目属性:平台工具集设置为Visual Studio 2015(v140),因为一些库再2015版本后取消了;③为该项目生成自定义依赖项;勾选masm文件④设置汇编代码入口点为main⑤为了方便阅读代码,可以下载插件此处我们下载Asm Dude插件,帮助我们更好地编写代码(该插件可以高亮汇编代码)原创 2024-05-30 15:58:52 · 632 阅读 · 0 评论 -
汇编:循环结构
16位汇编语言中的循环结构主要通过条件跳转指令(如、, , , , , 等)来实现,常见的循环类型包括循环和循环;指令的操作非常简单:它将CX寄存器的值减1,如果结果不为零,则跳转到指定的标签。这使得它特别适用于已知循环次数的情况,比如循环。 是一个标签,指向循环的开始位置。将寄存器 设置为 9,表示将从9开始循环。:将 的值复制到 寄存器。:将 的值加上 。在ASCII码表中,数字字符'0'的值是0x30,所以加上0x30可以将0-9的数字转换为'0'-'9'的ASCII字符。:将原创 2024-05-28 21:05:20 · 751 阅读 · 0 评论 -
汇编:比较&跳转
在16位汇编语言(如x86汇编)中,比较指令用于比较两个操作数的大小,通常用于条件跳转、循环控制等逻辑操作,比较指令(如CMP)会根据操作数的比较结果设置标志寄存器中的相关标志位。原创 2024-05-27 17:48:36 · 1006 阅读 · 0 评论 -
汇编:字符串的输出
在16位汇编程序中,可以使用DOS中断21h的功能号09h来打印字符串;:指令告诉汇编器代码段位于cs寄存器所指示的代码段中,数据段位于ds寄存器所指示的数据段中。和data ends之间的部分是数据段。在这里,szBuffer被定义为一个字符串,以结尾。0dh和0ah是 ASCII 字符集中的转义序列,分别代表回车(Carriage Return)和换行(Line Feed)。0dh对应于回车字符,表示将光标移动到当前行的开头,但不换行。通常与0ah。原创 2024-05-26 19:15:39 · 677 阅读 · 0 评论 -
汇编:数据类型
定义一个字节,值为0x1A定义一个字节,值为字符'A'的ASCII码2.字(Word)原创 2024-05-25 21:27:58 · 392 阅读 · 0 评论 -
汇编:函数以及函数参数传递
函数在汇编中被定义为一个带有标签的代码块,通常使用proc和endp关键字来定义函数的开始和结束。;函数体。原创 2024-05-24 22:33:53 · 1397 阅读 · 0 评论 -
汇编:加减乘除指令
它将累加器(AX)中的值除以一个操作数,并将商存储在累加器中,余数存储在另一个指定的寄存器中。它将累加器中的有符号整数除以一个操作数,并将商存储在累加器中,余数存储在另一个指定的寄存器中。指令通常用于乘法运算,它可以是一个乘法操作数与累加器的相乘,也可以是一个乘法操作数与其他寄存器或内存中的值相乘。接着往下执行,发现立即数2被载入BX寄存器中,且AX寄存器中的值和BX寄存器中的值相加,存储在BX寄存器中。指令通常用于除法运算,它可以是累加器与一个除数的相除,也可以是累加器与其他寄存器或内存中的值相除。原创 2024-05-22 19:26:06 · 950 阅读 · 0 评论 -
汇编-汇编程序基本框架
16位汇编程序是一种直接控制计算机硬件的低级编程语言,通常用于微控制器和早期的个人计算机。编写16位汇编程序需要理解计算机的体系结构、汇编语言的指令集和内存模型。原创 2024-05-21 23:37:57 · 592 阅读 · 0 评论 -
汇编-16位汇编环境搭建
在学习16位汇编时,我选择的环境是在VMware中安装Windows XP虚拟机来学习;在win10,win11环境中原生不支持直接运行 16 位程序,如果要在win10或者win11中运行和调试16位汇编程序则需要通过如安装DOS环境模拟器等通过一些工具和方法来支持16位汇编程序运行。接着直接点击下一步,不进行激活(随着VMware的更新迭代可能出现Windows XP虚拟机激活出现错误无限激活的情况);在MASM文件夹中创建一个.txt文件,并将上述代码复制进该.txt文件中;原创 2024-05-18 13:14:03 · 466 阅读 · 0 评论 -
汇编-内存
低字节(Low Byte):数据的最低有效部分,即最低的8位。高字节(High Byte):数据的最高有效部分,即最高的8位。0x12是高字节0x34是低字节。原创 2024-05-17 13:08:37 · 744 阅读 · 0 评论 -
汇编-基础&处理器
汇编语言(Assembly Language)是一种低级别的计算机编程语言,,在汇编语言中,程序员使用助记符(mnemonics)来表示机器指令,每个助记符对应于一条特定的机器指令,汇编语言提供了一种更接近机器语言的抽象,但比机器语言更容易理解和编写。原创 2024-05-16 11:21:55 · 708 阅读 · 0 评论