![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言
dishening7
这个作者很懒,什么都没留下…
展开
-
PC机高号中断编程8259初始化及中断服务程序处理
PC机高号中断编程8259初始化及中断服务程序处理8259A Initialization and Interrupt Serve Program Processing for Higher IRQ in IBM PC 作者 龚建伟 J.W. Gong 在IBM PC及其兼容机中,通过CPU的NMI(非屏蔽中断)和两个8259A可编程中断控制器芯片为系统提供了16级中断转载 2006-08-30 22:13:00 · 2081 阅读 · 0 评论 -
汇编语言小节(1)
“作为一名合格的程序员,汇编语言的知识是必不可少的。”1、intel汇编与AT&T格式的汇编不同之处也知道也写,今天看到一条以前没见过的:(变量)符号的地址以“$”开头,注意是变量的地址。movl $var,%ebx区别:movl var,%ebx2、函数调用过程中,关于参数压栈,和返回后执行指令的地址。伪码:.globl fun.type fun,@functio原创 2006-06-10 18:00:00 · 1545 阅读 · 0 评论 -
汇编语言小结(2)
1、再说些关于AT&T格式的汇编:mov ecx, ebp-8, 重写后的代码由一句变成了两句:movl %ebp, %ecxsubl $8, %ecx在AT&T的汇编语法中, 对于双寄存器寻址的操作, 不能对寄存器取的值作任何变换, 也就是说不能写成"movl %ebp-8, %ecx"的形式, 而寄存器间接寻址的操作就可以作变换, 比如:movl -8(%ebp), %ecx原创 2006-06-11 18:46:00 · 1473 阅读 · 0 评论 -
汇编中参数的传递和堆栈修正
本文要讲述的是在子程序调用的过程中进行参数传递的概念和分析。一般在程序中,参数的传递是通过堆栈进行的,也就是说,调用者把要传递给子程序(或者被调用者)的参数压入堆栈,子程序在堆栈取出相应的值再使用,比如说,如果你要调用 SubRouting(Var1,Var2,Var3),编译后的最终代码可能是push Var3push Var2push Var1call SubRoutingadd esp,转载 2007-05-09 15:27:00 · 1423 阅读 · 0 评论