汇编语言
1匹黑马
讷言敏行 筑梦踏实
展开
-
汇编中的原码反码补码
文章目录编码规则有符号数的编码规则举例说明编码规则不同的文件有不同的编码规则例如:01010101转换为16进制为55这里如果当作有符号数来判断,那么01010101转换为16进制仍然为55,原因很简单:若字节最高位以1开头,那么值为负。若字节最高位以0开头,那么值为正。例如:11010101 //这里当无符号数转换转换为16进制为:0xD5转换为10进制为:2...原创 2020-03-16 21:53:44 · 3060 阅读 · 1 评论 -
汇编中的标志位与JCC指令学习总结
文章目录什么是JCC指令EFLAGS标志寄存器CF(0 bit)[Carry flag]PF(2 bit)[Parity flag]AF(6 bit)[Auxiliary Carry Flag]ZF(6 bit)[Zero flag]SF(7 bit) [Sing flag]OF(11 bit)[Overflow flag]DF(10 bit)[Direction flag]常用的JCC指令表总结...原创 2020-02-27 19:48:41 · 1101 阅读 · 0 评论 -
汇编中的堆栈平衡
文章目录什么是堆栈平衡如何进行堆栈平衡什么是堆栈平衡这里有两种情况:如果要返回父程序,则当我们在堆栈中进行堆栈操作的时候,一定要保证在RET这条指令之前,ESP指向的是压入的我们压入的地址这句话我是这么理解的,就是当你调用函数的时候,比如使用CALL指令,当使用堆栈的时候,使用前ESP指向那个地址,使用后RET返回前就必须是那个地址,如果不是那个地址,那么堆栈就是不平衡的,程序就崩溃了...原创 2020-02-18 17:52:19 · 5272 阅读 · 0 评论 -
汇编中的堆栈传参
什么是堆栈传参?顾名思义,就是调用堆栈进行参数传递。什么时候我们会用到堆栈传参?当我们在执行函数调用时,寄存器不够用的时候,我们可以使用堆栈传参,比如说,我们要计算任意10个参数相加的和,如果按照之前文章的办法,我们会使用mov这个指令把参数传递到寄存器中进行计算,但是通用寄存器只有八个,我们现在要传递十个参数,这时候就可以使用堆栈传参了。具体实现方法直接上分析图:PUSH 压入参数...原创 2020-02-17 15:17:49 · 2030 阅读 · 1 评论 -
汇编中的函数
文章目录什么是函数如何调用函数什么是参数和返回值什么是函数函数就是一系列指令的集合,为了完成某个会重复使用的特殊功能。例如:向寄存器中存值。如何调用函数用JMP指令来执行函数用CALL指令来执行函数大多数情况下,我们都会使用call这个指令来调用函数,因为即使调用完了,程序也会retn回去,接着执行没有执行的指令,虽然jmp指令也可以往回跳,但是用起来不如call指令方便...原创 2020-02-17 13:39:52 · 2495 阅读 · 2 评论 -
汇编中修改EIP值的指令
文章目录什么是EIP如何修改EIP的值jmp指令call指令ret指令什么是EIPEIP也是一个寄存器,但不是通用寄存器,原因是它里面存的值,是我们CPU下一次要执行的地址,CPU通过EIP寄存器,找到地址,去执行地址上的指令。如何修改EIP的值可以使用以下指令来修改EIP的值:指令格式jmpjmp 内存/立即数/寄存器callcall 内存/立即数/寄存...原创 2020-02-15 20:03:11 · 1762 阅读 · 0 评论 -
浅谈汇编中的堆栈
文章目录什么是堆栈查看程序的堆栈使用程序的堆栈push指令(压栈)pop指令(出栈)总结什么是堆栈程序执行过程中要使用的一块内存是程序的心脏,所有的关键数据都会在这里边出现与数据结构的堆栈无关查看程序的堆栈把程序拖到OD里,在命令行输入dd (FS对应的地址)即可。程序在使用堆栈的时候,是从顶部往底部存储,空间也就会越存越小,直到存不下的时候,它就崩溃了,这或许就是堆栈溢出吧...原创 2020-02-14 19:46:49 · 2112 阅读 · 1 评论 -
通用寄存器各自的作用
文章目录寄存器的用途他们各自的作用寄存器的用途可将寄存器内的数据执行算术及逻辑运算。存于寄存器内的地址可用来指向内存的某个位置,即寻址。可以用来读写数据到电脑的周边设备。他们各自的作用寄存器作用EAX储存某一个程序执行完毕后得到的结果ECX作计数器使用,比如rep这个指令的执行次数就要从ECX寄存器中读取EDX在某些运算中作为EAX的溢出寄存器...原创 2020-02-14 17:42:19 · 2021 阅读 · 0 评论 -
汇编中的大端与小端程序
文章目录大端模式(大尾)小端模式(小尾)为什么会有大端与小端大端模式(大尾)存储规则:数据的高位存在内存的低位,数据的低位存在内存的高位。常见软件:RAM(手机)上的应用多采用大端模式存储小端模式(小尾)存储规则:数据的低位存在内存的低位,数据的高位存在内存的高位。常见软件:80x86CUP上的应用多采用小端模式存储这么说可能太会抽象,大家可以看下这张图,体会一下,这就是一个...原创 2020-02-14 00:11:26 · 942 阅读 · 0 评论