![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言
文章平均质量分 81
Yuleo_
*---------------------*
展开
-
内联汇编如何实现
传入函数前首先应参数入栈,最先入栈的为最后的函数形参,想要push一个字符串进去,我们不能简单的push str,我们应该把字符串的地址传入函数参数。所以,我们能否自己实现一个真正的裸函数?即这个函数里连这些汇编指令都没有。任何函数都具有这些操作,所以说一个什么都没有的函数其实并不是空的。我们一般认为它是空的,但是它真的是空的吗?我们在裸函数里自己实现一个小功能?我们省略了填充的过程,运行如下;原创 2022-10-17 20:59:47 · 330 阅读 · 0 评论 -
汇编 movs stos rep df 等指令的作用
movs stos rep df原创 2022-10-13 23:15:54 · 863 阅读 · 1 评论 -
C++反汇编 剖析虚函数表的实现原理(下)
反汇编技术,逐步跟踪分析虚函数表的存在原因,实现原理,虚函数表是什么?只要包含虚函数的类就会有一个虚函数表,当这个类是基类时,它的派生类也会有相应的虚函数表。当一个类有多个对象的时候,这些对象共享一个虚函数表。原创 2022-09-26 22:08:55 · 768 阅读 · 6 评论 -
C++及反汇编 剖析多态及虚表(上:多态的实现)
我们把action函数的用作多态的形式,通过调用父类指针来指向他们不同的成员函数,如上所示,我们定义了三个子函数,为了实现每一个动物的speak和run的功能,每一个action函数的形参都是特定化的,如果有1000个动物,他们都具有speak和run,如果不用多态,我们岂不是要写action函数1000次?这简单啊,三个动物类,每个类都有speak和run成员函数,在创建每个类的对象,分别调用不就好了?我们定义了一个动物们的基类:他们都具有speak和run的功能,所以我们把他们放在一个。原创 2022-09-26 14:30:56 · 507 阅读 · 0 评论 -
C++反汇编 利用反汇编分析常见C/C++语句的底层实现(硬核)
解释了底层C语言的语句执行情况,在此后,我也会写很多有意义的C++反汇编的代码,帮助大家理解C/C++的底层含义。原创 2022-09-25 12:34:19 · 4959 阅读 · 5 评论 -
汇编语言关于程序的模块化编写
子程序的cx也会返回,进而覆盖了主程序的cx(原本外层的cx用来换行每一个字符串),因此需要利用在进入子程序之前或者进入子程序马上push cx来保存外层的cx,在结束到over或者处理结束进入主程序之后再pop cx得到原来外层的cx,进而进行下一行字符串的处理。由于bx为16位,所以另一个数一定为16位,16位对16位,ax存放一个树,16位reg寄存器存放另一个数。100和10 都是8位(小于256),所以一个数放在al中,另一个数放在另一个8位reg寄存器中,结果放在ax中。原创 2022-09-10 23:12:46 · 293 阅读 · 0 评论 -
汇编语言ret与call指令
在主程序中用call去跳转到一个子程序,call保存之后的偏移地址IP,将其压入栈中,以便能够执行完子程序之后返回,call之后,跳转到子程序标号,执行子程序,执行完毕后,使用ret弹出IP栈值,这时的IP指向call之后的地址,因此会跳转回call之后的下一条指令,重新指向主程序。开始时ax=9,执行call ax后,把IP=3入栈,之后跳转到IP=0009(即ax的偏移地址)处。执行完毕后:CS=0000 IP=0123 SP=0EH。call指令:可以将IP或者CS和IP压入栈中。原创 2022-09-10 22:34:03 · 756 阅读 · 0 评论 -
汇编语言的除法计算
【代码】汇编语言的除法计算。原创 2022-09-09 22:30:48 · 2519 阅读 · 1 评论 -
汇编语言实验9(详解)多种颜色打印字符串
汇编语言(王爽) 实验9 打印字符串以多种不同的颜色原创 2022-08-09 20:04:33 · 3809 阅读 · 0 评论 -
汇编语言 转移指令及其原理
汇编语言 jmp offset jcxz loop等转移指令的原理原创 2022-08-09 18:14:29 · 2184 阅读 · 1 评论