![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
文章平均质量分 89
Orange Summer
这个作者很懒,什么都没留下…
展开
-
汇编入门知识
作用就是记住一些特殊的CPU状态,比如前一次运算的结果是正还是负、计算过程有没有发生进位、计算结果是不是零等信息,而后续的跳转指令,就是根据eflags寄存器中的状态,来决定是否要进行跳转的。上面的代码表示,取出 Stack 最近写入的值(即 EBX 寄存器的原始值),再将这个值写回 EBX 寄存器(因为加法已经做完了,EBX 寄存器用不到了)。上面的代码将 EAX 寄存器的值(即2)加上 EBX 寄存器的值(即3),得到结果5,再将这个结果写入第一个运算子 EAX 寄存器。也就是,当前函数的帧将被回收。原创 2023-03-29 18:11:48 · 321 阅读 · 0 评论 -
NASM汇编语言基础
要执行加载到内存中的程序,我们使用全局标签_start: 告诉操作系统在内存中可以找到和执行我们的程序的位置。操作系统的内核跳转到内存中的该地址并执行它。我们知道我们的slen函数正在寻找一个零字节,所以除非我们的msg2变量以零字节开头,否则它一直在计数,就好像它是同一个字符串一样(就程序集而言,它们是同一个字符串)。因此,在调用sys_write之后,程序继续按顺序执行内存中的下一个地址,我们不知道内核试图执行什么,但它导致其终止了我们的进程, 留下了"Segmentation faul"的错误消息。原创 2023-03-29 19:22:05 · 1486 阅读 · 0 评论