博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跟着锅子一步步学习32位汇编(1)---第一个汇编程序
阅读量:6231 次
发布时间:2019-06-21

本文共 1503 字,大约阅读时间需要 5 分钟。

锅子一直想写WIN32下得汇编博文,后来感觉不妥,还是脱离WIN API,尽量纯点,锅子用的是RadAsm,网上配置文章比较多,大家找找哦。

博文里,肯定有借鉴其他教材或高手的代码,主线想按Intel 汇编语言程序设计 为蓝本,扩展讲起。

锅子水平有限,博文里 若出现代码不妥之处,敬请高手给予 提醒和纠正,谢谢大家,闲话到这,现在开始将第一个汇编程序。

 

;test_01INCLUDE irvine32.incINCLUDELIB Irvine32.libINCLUDELIB KERNEL32.LIB.dataval1	DWORD 10000hval2	DWORD 40000hval3	DWORD 20000h.data?finalval    DWORD 2 DUP(?).codemain PROC	mov	eax,val1	add	eax,val2	sub	eax,val3		mov finalval,eax		call	DumpRegs	exitmain endpEND main
-----------------------------------------------

让我们运行效果,寄存器EAX变成了 30000,我们用的是16进制,所以是30000h,原来EAX是多少,我们不用去管。

上面的程序 是 先赋值EAX=10000h(mov是赋值),add是相加,代表eax+30000h,下面步 sub是相减,eax=eax-10000h,最后赋值给finalval,这个是大致意思。

------------------------------------------------

细讲下

INCLUDE irvine32.inc INCLUDELIB Irvine32.libINCLUDELIB KERNEL32.LIB ;程序在编译时, 见到 include (伪)指令就会把它指定的 inc 文件(或 asm) 文件复制到当前位置.;inc 文件主要包含函数或常量的声明.;lib 文件包含了动态库函数的地址信息和静态库的函数代码, 程序在链接阶段会提取这些信息或代码; ;对 DLL(动态库), 程序运行时会根据这些地址信息去调用 DLL 中的相应的函数..dataval1	DWORD 10000hval2	DWORD 40000hval3	DWORD 20000h.data?finalval    DWORD 2 DUP(?);.data 和 .data? 这2个 是数据段,一般未初始化的数据,放在.data?,也可以放.data段,2者的区别是,.data?段 放的都是固定的数据大小,;比如finalval,后面用了个DUP,代表 前面数字2,表示用了 2个DWORD。;DWORD是数据类型,其他数据类型还有BYTE,WORD,REAL 等, ;val1	DWORD 10000h  意思是声明个变量为DWORD,放在.data段,值是10000h.code;.code代表 字面上我们就能看出是代码段的意思了。这里是程序执行的段。main PROC;代码段里 一个名为main的过程call	DumpRegs;显示寄存器信息,就是之前个图,不调用就不显示那些EAX之类的了。main endpEND main;第一句结束 procedure,第2句 END main,表示结束当前整个程序,忽略后面的代码

转载于:https://www.cnblogs.com/guogairenjia/archive/2011/11/04/2235952.html

你可能感兴趣的文章
一些C++11语言新特性 - Uniform Initialization
查看>>
Redis高级实践之————Redis短连接性能优化
查看>>
CentOS 6.5 安装nginx 1.6.3
查看>>
48.3. 设置Apache实现防盗连
查看>>
项目管理、测试管理、代码bug 管理
查看>>
SAP物料主档关键栏位解释
查看>>
Nim教程【十二】
查看>>
第 30 章 Shell Terminal
查看>>
Data Guard实现故障自动切换(二)(r11笔记第39天)
查看>>
[20171211]ora-16014 11g.txt
查看>>
oracle的正则表达式
查看>>
这几天的两件趣事
查看>>
小块头大作用 新型低成本测距传感器适用于无人机
查看>>
VSTO之旅系列(五):创建Outlook解决方案
查看>>
[erlang] mnesia
查看>>
php编码
查看>>
Java使用Socket传输文件遇到的问题(转)
查看>>
MYSQL-用户权限的验证过程(转)
查看>>
快递配送最后一公里的痛:利益失衡后开始崩塌
查看>>
深入理解Tomcat系列之一:系统架构(转)
查看>>