Monthly Archives: October 2018

三种常用的函数调用约定

1、函数调用在汇编中,有关于参数传递与栈平衡的问题,可参照函数调用在汇编中的基本实现,主要有三种方式__cdecl、__stdcall、__fastcall;
2、在C++代码中,可以在函数名前加这三个关键字来设定编译方式,先上代码:

1
// VCTest.cpp : Defines the en[......]<p class="read-more"><a href="https://www.yusian.com/blog/assembler/2018/10/24/2110051290.html">继续阅读</a></p>

函数调用原理–参数篇

1、汇编模拟函数调用的基本过程:

1
2
3
4
5
6
7
8
9
assume cs:code, ds:data, ss:stack
 
stack segment   
    db 20h dup(1)
stack ends    
 
data segment    
    db 20h dup(2)
dat[......]<p class="read-more"><a href="https://www.yusian.com/blog/assembler/2018/10/24/1739131283.html">继续阅读</a></p>

汇编简单实现两个数值的交换

1
2
3
4
5
6
7
8
assume ss:stack, ds:data, cs:code
;堆栈段
stack segment
    db 20 dup(1);初始化20个字节空间
stack ends
;数据段
data segment
    db 20 dup(2);初始化20个字节空间[......]<p class="read-more"><a href="https://www.yusian.com/blog/assembler/2018/10/23/2308131274.html">继续阅读</a></p>

第一个汇编程序Hello World!(Hello Assembler!)

1、看图说话

2、代码

1
2
3
4
5
6
7
8
9
assume cs:code ,ds:data
;数据段
data segment
    db 'Hello Assembler!$'    
data ends
;代码段
code segment
start:
    ;加载数据到ds[......]<p class="read-more"><a href="https://www.yusian.com/blog/assembler/2018/10/23/2134301270.html">继续阅读</a></p>