码迷,mamicode.com
首页 > 其他好文 > 详细

x86---32汇编(0)

时间:2020-04-07 09:59:53      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:value   demo   open   --   lang   printf   hide   简单   时间   


  一直都想要系统的学习一下计算机知识,汇编知识对于计算机的学习会有很大的帮助,现在笔者准备学习一下汇编打算使用碎片的化的时间,记录自己写的一些程序和一些心得,方便自己以后学习和使用,所以笔者很难每日一更。我使用的软件仍然是vs2017,参考书用的是《现代x86汇编语言》。大家有兴趣可以去下载看一下。
 我简单根据书上的代码写了一个求和:

技术图片
 1 #include "stdafx.h"
 2 
 3 extern "C" int CalcSum_(int a, int b, int c);
 4 
 5 int _tmain(int argc, _TCHAR* argv[])
 6 {
 7     int a = 17, b = 11, c = 14;
 8     int sum = CalcSum_(a, b, c);
 9 
10     printf("  a:   %d\n", a);
11     printf("  b:   %d\n", b);
12     printf("  c:   %d\n", c);
13     printf("  sum: %d\n", sum);
14     return 0;
15 }
Calsum.cpp
技术图片
 1     .model flat,c
 2     .code
 3 
 4 ; extern "C" int CalcSum_(int a, int b, int c)
 5 ;
 6 ; Description:  This function demonstrates passing arguments between
 7 ;               a C++ function and an assembly language function.
 8 ;
 9 ; Returns:      a + b + c
10 
11 CalcSum_ proc
12 
13 ; Initialize a stack frame pointer
14         push ebp
15         mov ebp,esp
16 
17 ; Load the argument values
18         mov eax,[ebp+8]                     ; eax = a
19         mov ecx,[ebp+12]                    ; ecx = b
20         mov edx,[ebp+16]                    ; edx = c
21 
22 ; Calculate the sum
23         add eax,ecx                         ; eax = a + b
24         add eax,edx                         ; eax = a + b + c
25 
26 ; Restore the callers stack frame pointer
27         pop ebp
28         ret
29 
30 CalcSum_ endp
31         end
Calsum.asm

 

x86---32汇编(0)

标签:value   demo   open   --   lang   printf   hide   简单   时间   

原文地址:https://www.cnblogs.com/xuelanga000/p/12651206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!