![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言
人而已
这个作者很懒,什么都没留下…
展开
-
跳转指令中哪些我们需要考虑符号,哪些不需要考虑符号
JA,JB,JBE,JAE的两个操作数都是正数(无符号数),而JG,JL,JLE,JGE把两个操作数都看成有符号数。原创 2021-05-30 07:52:44 · 165 阅读 · 0 评论 -
关于传参数时对应寄存器的问题
对于x86操作系统来说,除非指定以寄存器传递(通过"regparm (NUMBER)"注:NUMBER<=3指定)。如果指定寄存器传递参数,则eax为第一个参数,edx为第二个参数, ecx为第三个参数,往下依次为edx以及esi和edi。64位系统用户应用层用整数寄存器%rdi ,%rsi,%rdx,%rcx, %r8以及 %r9来传参。而内核接口用%rdi ,%rsi,%rdx,%r10,&r8以及%r10来传参,并且用syscall指令而不是80中断进行系统调用。x86和x64都原创 2020-06-20 17:36:10 · 1502 阅读 · 1 评论 -
CBW、CWDE、CDQ、CWD: 扩展指令
CBW、CWDE、CDQ、CWD: 扩展指令;CBW(Convert Byte to Word): 将 AL 扩展为 AX;CWDE(Convert Word to Extended Double): 将 AX 扩展为 EAX;CDQ(Convert Doubleword to Quadword): 将 EAX 扩展为 64 位数 EDX:EAX;CWD转载 2017-07-10 20:47:42 · 3415 阅读 · 0 评论 -
关于符号扩展指令。
一直对汇编中符号扩展指令存在疑问,为什么扩展之后的数值对div 和mul 都没有影响?后来不断查询才知道原因,以CBW为例。“CBW是将字节转换为字指令。它将寄存器AL中的符号扩展到寄存器AH中。”显然,是将符号进行扩展,因此在各项运算中不会影响的。原创 2017-07-10 20:50:53 · 1525 阅读 · 0 评论