摘要: 子程序的定义 子程序的定义方式如下所示。 子程序名 proc [距离][语言类型][可视区域][USES 寄存器列表][,参数:类型]...[VARARG] local 局部变量列表 指令 子程序名 endp proc和endp伪指令定义了子程序开始和结束的位置, proc后面跟的参数是子程序的属性和输入参数... 阅读全文
posted @ 2009-04-11 16:31 jasonM 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 变量的使用 1. 以不同的类型访问变量 这个话题有点像C语言中的数据类型强制转换,C语言中的类型转换指的是把一个变量的内容转换成另外一种类型,转换过程中,数据的内容已经发生了变化,如把浮点数转换成整数后,小数点后的内容就丢失了。在MASM中以不同的类型访问不会对变量造成影响。 举一个简单的例子,先以db方式定义一个缓冲区: szBuffer db 1024 dup (?) 然... 阅读全文
posted @ 2009-04-11 16:08 jasonM 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 标号、变量和数据结构 当程序中要跳转到另一位置时,需要有一个标识来指示新的位置,这就是标号,通过在目的地址的前面放上一个标号,可以在指令中使用标号来代替直接使用地址。 使用变量是任何编程语言都要遇到的工作,Win32汇编也不例外,在MASM中使用变量也有需要注意的几个问题,错误地使用变量定义或用错误的方法初始化变量会带来难以定位的错误。变量是计算机内存中已命名的存储位置,在C语言... 阅读全文
posted @ 2009-04-11 14:51 jasonM 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: API是什么 Win32程序是构筑在Win32 API基础上的。在Win32 API中,包括了大量的函数、结构和消息等,它不仅为应用程序所调用,也是Windows自身的一部分,Windows自身的运行也调用这些API函数。 在DOS下,操作系统的功能是通过各种软中断来实现的,如大家都知道int 21h是DOS中断,int 13h和int 10h是BIOS中的磁盘中断和视频中断。当应用程序要引... 阅读全文
posted @ 2009-04-11 14:22 jasonM 阅读(860) 评论(0) 推荐(0) 编辑
摘要: 3.1.2 段的定义 1. 段的概念 把上面的Win32的Hello World源程序中的语句归纳精简一下,再列在下面: .386 .model flat,stdcall option casemap:none .data .code end 开始标号 上一节讲到的选项、模式等定义并不会在编译好的可执行程序中产生什么东西,它们只是“说明”,而真正的数据和... 阅读全文
posted @ 2009-04-11 13:42 jasonM 阅读(523) 评论(0) 推荐(0) 编辑
摘要: Win32汇编源程序的结构 任何种类的语言,总是有基本的源程序结构规范,在讨论C语言的书中,大家都会记得这个非常经典的Hello World程序: #include main() { printf("Hello, world"n"); } 像这样一个程序,就说明了C语言中最基本的格式,main()中的括号和下面的花括号说明了一个函数的定义方法,printf语句说明了一个函数的调... 阅读全文
posted @ 2009-04-11 13:37 jasonM 阅读(688) 评论(0) 推荐(0) 编辑