- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 X86汇编中的结构体STRUCT和UNION
x86汇编结构体STRUCT和UNION的定义声明结构体结构体的赋值和取值操作, 结构的初始化值可以用**{}或者**联合体的定义
2022-07-09 11:16:12
3971
1
原创 MASM错误 A2041 string or text literal too long
编译错误 A2041 string or text literal too long
2022-07-08 20:29:03
327
原创 X86汇编指令movsb、cmpsb、scasb、stosb、lodsb等简介
movsb指令将esi的值按照字节(byte)为单位将数据传送到edi的内存地址上。 当DF =0时ESI和EDI的值增加1,DF=1时ESI和EDI的值减少1movsw指令将esi的值按照字(word)为单位将数据传送到edi的内存地址上。 当DF =0时ESI和EDI的值增加2,DF=1时ESI和EDI的值减少2movsd指令将esi的值按照双字(dword)为单位将数据传送到edi的内存地址上。 当DF =0时ESI和EDI的值增加4,DF=1时ESI和EDI的值减少4REP方法使用的示例
2022-07-04 19:02:55
6947
原创 X86汇编MUL、IMUL、DIV、IDIV、CBW、CWD、CDQ指令简介
指令有三种类型,第一种类型是执行8位立即数和AL寄存器的乘法,第二种类型是执行16位数和AX寄存器的乘法,第三种是执行32位数和EAX寄存器的乘法。语法如下mul乘法,被乘数、乘数、乘积的表格如下乘积的高半部分不为0,则MUL会把进位标志和溢出标志置为1示例代码如下IMUL指令有符号整数乘法与MUL指令不同,IMUL会保留乘积的符号,实现方法是将乘积的低半部分的符号位扩展到高半部分。X86指令集支持三种格式的IMUL指令:单操作数、双操作数、和三操作数。单操作数格式,乘积的高半部分是低半
2022-07-03 21:28:47
5262
原创 x86移位SHL、SHR、SAL、ROL、RCR等指令
SHL指令使dest左移count位,低位用0补充,高位的值移位到CF位(覆盖原CF位)SHL指令的可用操作类型如下代码示例如下关于OF位的实验数据SHR指令SHR指令使dest右移count位,高位用0补充,低位的值移位到CF位(覆盖原CF位)SHR指令的操作类型和SHL一致代码示例如下关于OF位的实验数据SAL指令(算术左移)的操作和SHL一致SAR指令(算术右移)SAR指令使dest右移count位,高位用dest的最高位补充,低位的值移位到CF位(覆盖原CF
2022-07-03 19:16:55
9282
原创 EFLAGS寄存器和jcc指令简介及验证
如上图所示常用的标志位只有9个,9个标志位的含义如下**CF标志位(第0位)又称进位标志位,**指令操作使得目标操作数的最高位有进位时,进位标志位置为1,否则为0。表示无符号数运算结果是否超出范围,运算结果仍然正确**PF标志位(第2位)又称奇偶标志位,**指令操作是的目标操作数的低字节(最低的8个bit位)有偶数个1时,奇偶标志位置为1,否则为0**AF标志位(第4位)又称辅助进位位,**指令运算过程中,看最低的4位, 如果产生进位或者借位的时候,置1,否则置0ZF标志位(第6位)又称零标志位,指令运算产
2022-06-30 14:49:48
924
原创 VS2022配置Irvine链接库
在项目上鼠标右键点击, 弹出面板选择属性,进入属性页面。如下图所示进入属性页面之后,点击配置属性–>链接器–>常规–>附加库目录,在附加库目录中输入lib地址,输入完成之后点击链接器–>输入,在附加依赖项中输入lib文件名称。如下两张图所示。自此已配置完成,待测试 测试代码如下.........
2022-06-21 21:35:48
2261
原创 x86汇编语言mov、movzx、movsx、sizeof、lengthof等指令
mov指令语法格式如下注意点两个操作数的大小必须是一样的两个操作数不能同时为内存操作数指令寄存器(IP、EIP、RIP)不能做操作数movzx指令语法格式如下注意点指令寄存器(IP、EIP)不能做操作数代码调试示例movsx指令LAHF和SAHFLAHF 指令是加载eflags寄存器的低字节到 AH寄存器中SAHF指令是保存AH寄存器中的值到eflags寄存器的低字节中XCHG指令add指令inc和dec指令sub指令
2022-06-19 16:29:44
3300
原创 x86中符号常量的基本概念
使用EQU伪指令EQU伪指令把一个符号名称与一个表达式或者一个任意文本连接起来,格式如下EQU和伪指令=号不同,EQU不能重复定义,伪指令=号可以重定义TEXTEQU伪指令TEXTEQU类似于EQU伪指令,用于创建文本宏...
2022-06-18 21:22:15
227
原创 vs2022配置X86 masm汇编环境
打开vs2022创建新项目选择空项目点击创建按钮,创建项目选择新建项新建asm文件(注意要手动修改cpp文件后缀名为asm文件后缀名)选择菜单栏中的"调试->demo调试属性->配置属性->链接器->高级->入口点",后面的输入框填main配置项目中的生成自定义项,勾选masm8.编写汇编测试代码9.编译代码,使用快捷键Ctrl+Alt+b10.按快捷键 F5,执行调试,如调试断点没生效,需要配置如下设置11.设置文件属性12.调试成功...
2022-06-18 16:29:45
7054
Irvine64位、Irvine32位、Irvine资源下载
2022-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人