汇编语言
文章平均质量分 95
旅之灵夫
【授人以渔】
【要站在巨人的肩上】
【没有做不到,只有想不到】
【人的脑子是一个有限的空间,所以必须选择性的吸收知识,而不能把什么东西都放进去。--柯南·道尔】
展开
-
【手撕汇编。。。】【转载】
这里也可以指定生成可执行文件所在的目录,我们也不需要,继续向下走。一个完整的程序是要有返回条件的,程序只有在执行完相关代码后,执行返回条件,让出 CPU 执行权,操作系统才会分配时间片给其他程序,程序不能一直霸占着 CPU 不放,这是一种资源的浪费,而且一直占用着 CPU,也会导致程序崩溃。运行 link 后,会出现一些版本信息,然后提示需要被连接的目标文件名称,这里仍需要注意,默认文件是 .obj 结尾,所以如果你需要连接的文件是 obj 文件,就不用输入后缀名,如果不是 obj 文件,则需要输入全名。原创 2024-02-24 22:40:35 · 890 阅读 · 0 评论 -
【手把手教你汇编 Debug】【转载】
今天和大家聊了一下 Debug 的基本用法,主要包括-r 查看、修改寄存器中的内容-d 查看内存中的指令-e 修改内存中的内容-u 可以将内存中的内容解释为机器指令和对应的汇编指令-t 执行 CS:IP 处的指令-a 以汇编得形式向内存写入内容汇编指令的选项有很多,上面介绍的这些属于经常用到的指令,这些指令要能够熟练使用。手把手教你汇编 Debug。原创 2024-02-24 22:25:45 · 972 阅读 · 0 评论 -
【寄存器】【转载】
段这个概念经常出现在操作系统中,比如在内存管理中,操作系统会把不同的数据分成段来存储,比如「代码段、数据段、bss 段、rodata 段」等。但是这些的划分并不是内存干的,cxuan 告诉你是谁干的,这其实是幕后 Boss CPU 搞的,内存当作了声讨的对象。其实,内存没有进行分段,分段完全是由 CPU 搞的,上面聊过的通过基础地址 + 偏移地址 = 物理地址的方式给出内存单元的物理地址,使得我们可以分段管理 CPU。如图所示。原创 2024-02-24 21:11:05 · 903 阅读 · 0 评论 -
【图解函数调用过程】【转载】
函数调用是编程语言都有的概念,也许你听说过函数调用栈,但是大家都知道函数调用是如何完成的吗?我们为什么要了解这个过程:对于程序运行机制中的数据结构和实现的了解,对自己开发程序有着启发作用碰到一些疑难杂症的时候,比如函数栈溢出了或者函数栈破坏了,如何从蛛丝马迹中寻找问题的原因。了解栈溢出可能带来的危害,黑客也许会利用栈溢出的漏洞进行攻击。这篇博文我们一起来对函数调用的过程进行探究。原创 2024-02-20 21:31:50 · 857 阅读 · 0 评论 -
【汇编语言入门教程】【转载】
程序运行过程中,对于动态的内存占用请求(比如新建对象,或者使用malloc命令),系统就会从预先分配好的那段内存之中,划出一部分给用户,具体规则是从起始地址开始划分(实际上,起始地址会有一段静态数据,这里忽略)。举例来说,用户要求得到10个字节内存,那么从起始地址0x1000开始给他分配,一直分配到地址0x100A,如果再要求得到22个字节,那么就分配到0x1020。这段内存有起始地址和结束地址,比如从0x1000到0x8000,起始地址是较小的那个地址,结束地址是较大的那个地址。指令其实有一个前置操作。原创 2024-02-18 21:26:27 · 826 阅读 · 0 评论