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

工具使用:

学习之前我研究了下如何用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也会被反转。

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

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

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
我在人间贩卖青春5 天前
汇编之伪指令
汇编·伪指令
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode