随笔分类 - x86汇编
摘要:一直疑惑MASM的宏(宏过程)为什么不需要返回,而设计出一个宏函数。用过之后才知道,宏直接用实参返回就可以了。和过程不同,过程有一种叫参数传递的机制,宏没有!宏没有所谓值传递引用传递,它就是代码本身。 条件汇编语句利用程序运行前已知的东西来构建不同的代码。
阅读全文
摘要:学习x86 MASM汇编语言的过程中,联合是理解难度较高的一个元素。 在网上找到了这样的信息:联合提供了一种方式,能够规避C的类型系统,允许以多种类型来引用一个对象。 我自己的看法是,联合在某种程度上像一个逻辑上的寄存器。这个寄存器的大小可以自由定义,它的数据可以自由的访问。 但在任何一个时刻,它只
阅读全文
摘要:高级语言如何存放二维数组 高级语言有两种方法在内存中存放二维数组:行主序,列主序。 行主序存储方法 使用行主序(最常用)时,第一行存放在内存块开始的位置,第一行最后一个元素后面紧跟的是第二行的第一个元素。 列主序存储方法 使用列主序时,第一列的元素存放在内存块开始的位置,第一列最后一个元素后面紧跟的
阅读全文
摘要:环境:vs2019,win7 在main文件声明过程 FindThrees PROTO, array:PTR DWORD, ;数组指针 MYlength:DWORD ;数组长度 在other文件定义过程 FindThrees PROC USES ecx esi edx, array:PTR DWOR
阅读全文
摘要:环境:VS2019,WIN7 1.ML汇编器报错的时候,经常把一些毫不相干的语句同时报错。所以在汇编报错时,首要的是确定哪条语句错了!要不然把正确的语句改了,不仅没有改善,反而恶化了程序。编码1小时,调试2小时! 2.在语句中间嵌入注释有时要特别小心,特别是过程的头部声明那里,很危险!刚才遇到一个错
阅读全文
摘要:环境:vs2019,win7 声明extern过程 和C一样,外部过程在使用前在main文件前面声明,需要注意的是func@0,这里的参数永远必须是0,如果为非0,汇编器会报错。 例如:EXTERN FindLargest@0:PROC 调用extern过程 call FindLargest@0 定
阅读全文