汇编学习之《运算和逻辑指令》

工具使用:

学习之前我研究了下如何用cursor 配置c++,其实cursor就是和vscode一样, 去vscode官网查看就可以了。这里调试c++程序同步观察汇编执行情况很方便 。

cursor (vscode)配置c++

这章其实都很简单,但是为了加深映像,建议还是都敲一遍。

add 加法运算

其实这里比较简单,我放过来去搞了一个c++代码,然后同步调整汇编,观察执行过程。

MOV DWORD PTR SS:[ESP+0xC], 1
ADD DWORD PTR SS:[ESP+0xC],1

可以看到汇编中在栈段寄存器

sub减法运算

mov DWORD PTR [esp+0xc],0x2
sub DWORD PTR [esp+0xc],0x1

以上有一个问题, 我们c++代码申请了一个4个字节的整数的临时变量,为啥汇编语言是偏移了12个字节 (0xC), 有知道原因的朋友在评论区告诉我下呢?

逻辑与: and

mov eax, 1;

and eax, 2;

二进制: 0001 and 0010 ==> 0000 (十进制0)

相同为1, 不同为0

逻辑或: or

mov eax,1;

mov eax, 2;

二进制: 0001 or 0010 ==> 0011 (十进制3)

有一个为1,则为1

逻辑异或 xor

mov eax,1

xor eax, 2

二进制: 0001 xor 0010 ==> 0011 (十进制3)

相同为0,不同为1

逻辑非 not

mov eax, 3

not eax

二进制 not 0011 == > 1111 1111 1111 1111 1111 1111 1111 1100 (十六进制FFFFFFFC)

OD 查看32位,四个字节,所以前面的0也会被反转。

上一篇:汇编学习之《数据传输指令》

下一篇: 汇编学习之《移位指令》

相关推荐
辰海Coding8 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
晓梦林8 小时前
cp520靶场学习笔记
android·笔记·学习
心中有国也有家10 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
Upsy-Daisy10 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
LuminousCPP11 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
魔法阵维护师11 小时前
从零开发游戏需要学习的c#模块,第十四章(保存和加载)
学习·游戏·c#
_李小白12 小时前
【android opencv学习笔记】Day 17: 目标追踪(MeanShift)
android·opencv·学习
一只机电自动化菜鸟12 小时前
一建机电备考笔记(40) 建筑机电施工—排水管道施工(含考频+题型)
经验分享·笔记·学习·职场和发展·课程设计
2301_8187305612 小时前
numpy的学习(笔记)
学习·numpy
GHL28427109013 小时前
Logon failed, use ctrl+c to cancel basic credential prompt
学习·prompt