首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

32汇编真是郁闷,该如何解决

2012-02-25 
32汇编真是郁闷.386.model flat,stdcalloption casemap:none

32汇编真是郁闷
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


includemasm32.inc
includelib masm32.lib
includekernel32.inc
includelibkernel32.lib





;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.const

szCaptiondb'恭喜',0
szTextdb'当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
mov eax,1;
invoke StdOut,addr szCaption;
invokeExitProcess,0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
endstart




1.
学过c++,现在反过来学习汇编,好郁闷

不是语法复杂,相反觉得汇编语法过于简单,没c++复杂。。。

比如:退出函数用ExitProcess, 要是c++,肯定用return,否则 crt函数无法调用,exit无法调用,造成资源泄露。。。。


汇编居然可以这样。。。。。

2.kernel32.lib, 其实c:windows\system32\下有一个。。。。。。。。

显然我的汇编程序包含的这个lib,绝对不是systeme32下的。。。

它们有什么区别呢???


3. addr 和offset有什么区别呢???




[解决办法]
offset的编译结果是线性地址,0x40000001这样的,显然不使用于栈变量....
addr比较高级,可以用于代码段的数据,用于栈变量是编译成ebp+编译的方式...

热点排行