其实这个我自己出给自己的练习题现在都还没做对。。。虽然看得懂一点汇编指令,但我还是不理解寄存器以及对它们正确的使用,断断续续的学汇编,进步超缓慢。。而且一段时间不写,连指令作用都忘了。 最早电脑装了 gcc,用的nasm,但后来不想用 gcc 了,一直在用 msvc,然后 nasm 无法与 msvc ...
分类:
其他好文 时间:
2020-04-23 09:11:21
阅读次数:
96
X86和X87汇编指令大全(有注释) 一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX, ...
分类:
其他好文 时间:
2020-04-14 18:33:04
阅读次数:
90
一、LDR(Load Register 加载寄存器)将存储器地址所指地址处连续的4个字节(1个字)的数据传送到目的寄存器中。 例: /* 将Reset_Handler函数的地址加载到pc寄存器中 */ldr pc, =Reset_Handler /* 将Reset_Handler函数的地址加载到r0 ...
分类:
其他好文 时间:
2020-04-12 18:56:21
阅读次数:
85
在学习了基于8086的x86汇编指令后,继续学习了32位、64位的x86汇编指令。其基本原理与8086基本一致,只是增加了X87浮点单元,以及用于浮点运算和多媒体处理的SIMD(Single Instruction Multiple Data,单指令多数据流)指令。
分类:
其他好文 时间:
2020-04-09 10:51:23
阅读次数:
83
ARM汇编指令基于RISC架构,因此其指令集非常精简,本文重点介绍必须掌握的相关指令。
分类:
其他好文 时间:
2020-04-09 10:38:12
阅读次数:
53
感谢BUUCTF提供的学习平台 https://buuoj.cn 题目:不一样的flag 工具:x64dbg 这是一道内存的迷宫题,迷宫是402000处的字符串 根据经验,这应该(a行*b列)的字符,想快速解题,需要知道是几行几列。 行的确定: 列的确定: shl汇编指令的含义为eax*2n,先将e ...
分类:
其他好文 时间:
2020-04-03 22:12:18
阅读次数:
161
主要内容来自以下网址。该网站是个学习ARM汇编的好地方。计划将该篇文章翻译过来,并和Sparc对比。 https://azeria-labs.com/functions-and-the-stack-part-7/ ARM和Sparc比较 之前整理的Sparc的原理,Sparc V8 汇编指令、寄存器 ...
分类:
其他好文 时间:
2020-04-03 20:12:29
阅读次数:
75
基本内联汇编 基本内联汇编格式比较直观,可以直接这样写: 例如: 扩展内联汇编 前面讨论的基本内联汇编只涉及到嵌入汇编指令,而在扩展形式中,我们还可以指定操作数,并且可以选择输入输出寄存器,以及指明要修改的寄存器列表。对于要访问的寄存器,并不一定要显式指明,也可以留给GCC自己去选择,这可能让GCC ...
分类:
其他好文 时间:
2020-03-29 13:04:56
阅读次数:
97
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 常用汇编指令集合 1. gdtr 1.gdtr 读取gdt表地址 其需要六个字节,但是前两个字节并没有用处。 汇编代码: CHAR Sgdtr[6] = { NULL ...
分类:
其他好文 时间:
2020-03-25 18:51:44
阅读次数:
132
数据传送指令 数据交换指令 完成两个操作数间的数据交换,操作数可以是寄存器和存储单元,但是不能两个都是存储单元(与MOV指令一样,可以用寄存器作为中间媒介)。并且,段寄存器不能作为操作数。下面代码需注意VAR1的默认段是CS,而VAR1[BP]默认是SS段,如果这两个段偏移不同,则变量VAR1最终不 ...
分类:
其他好文 时间:
2020-03-24 19:16:44
阅读次数:
84