
Win32汇编
nicholas199109
这个作者很懒,什么都没留下…
展开
-
Intel CPU的保护模式
保护模式x86有三种工作方式:实模式,保护模式和虚拟x86模式。尽管实方式下x86的功能要大大超过其先前的处理器(8086/8088,80186,80286),但只有在保护方式下, x86才能真正发挥更大的作用。在保护方式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间;扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器转载 2012-11-28 23:45:43 · 657 阅读 · 0 评论 -
匈牙利命名法
变量(还包括宏)的命名规则,比较系统和彻底的有 Windows 编程中用到的匈牙利命名法。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。有关匈牙利命名法的一点有意思的说明是它的名字的由来转载 2013-01-31 22:36:34 · 483 阅读 · 0 评论 -
win32 汇编基础
一、关于寄存器寄存器有EAX,EBX,ECX,EDX,EDI,ESI,ESP,EBP等,似乎IP也是寄存器,但只有在CALL/RET在中会默认使用它,其它情况很少使用到,暂时可以不用理会。EAX是WIN32 API 默认的返回值存放处。ECX是LOOP指令自动减一的寄存器。ESP是堆栈指针。EBP经常用来在堆栈中寻址。ESI好像常常用在指针寻址中,EDI不大清楚。二、关转载 2013-01-31 22:58:22 · 2697 阅读 · 0 评论 -
rep stos dword ptr es:[edi] 是做什么的?
笔者在winDBG中反汇编一个小程序的main函数, 看到了如下的一段代码:0:000> uf . monitor!main [c:\users\myalias\documents\visual studio 2005\projects\mytest\mytest\main.c @ 32]: 32 0042f780 55 push ebp转载 2013-01-31 20:41:49 · 4013 阅读 · 0 评论 -
WIN32汇编下的窗口程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; Sample code for ; by 罗云彬, http://asm.yeah.net; change by 小甲鱼, http://www.fishc.com;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>转载 2013-02-01 10:12:01 · 773 阅读 · 0 评论 -
物理地址与线性地址详解
1. Linear Space & Physical Space 在硬件工程师和普通用户看来,内存就是插在或固化在主板上的内存条,它们有一定的容量——比如64 MB。但在应用程序员眼中,并不过度关心插在主板上的内存容量,而是他们可以使用的内存空间——他们可以开发一个需要占用1 GB内存的程序,并让其在OS平台上运行,哪怕这台运行主机上只有128 MB的物理内存条。而对于OS开转载 2013-01-31 09:42:00 · 548 阅读 · 0 评论 -
实模式、保护模式和虚拟8086方式(详细)
实模式、保护模式和虚拟8086方式(详细)热度 12已有 323 次阅读2011-3-12 16:41 |个人分类:技术1:实模式:寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。2:保护模式:寻址采用32位段和偏移量,最大寻址空间4GB,最大分段4GB (Pentium Pre及以后转载 2012-11-28 23:43:17 · 1629 阅读 · 0 评论 -
保护模式下寻址(易懂)
网上看到的一强帖,不转不行了,牛人啊,把这段代码拿捏的相当到位 括号中是我的加注段机制轻松体验[内存寻址]实模式下的内存寻址:让我们首先来回顾实模式下的寻址方式段首地址×16+偏移量 = 物理地址为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻址64KB,它无法寻址到1M内存。于是,Intel设计了这种寻 址方式,先缩小4位转载 2012-11-28 23:44:42 · 615 阅读 · 0 评论 -
高级语法 break if 的使用
; 半斤八两的优快云博客地址:http://blog.youkuaiyun.com/nicholas199109; 功能:break if在while-endw中的使用; 计算从1加到50的和。 .386 .model flat,stdcall option casemap:none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>转载 2012-11-28 23:01:34 · 752 阅读 · 0 评论 -
罗云彬win32汇编教程笔记 子函数的声明, 定义与调用
在主程序中用call指令来调用子程序。 Win32汇编中的子程序也采用堆栈来传递参数,这样就可以用invoke伪指令来进行调用和语法检查工作。一. 子程序的定义子程序的定义方式如下所示。子程序名 proc [距离][语言类型][可视区域][USES 寄存器列表][,参数:类型]...[VARARG] local 局部变量列表 指转载 2013-01-31 17:18:55 · 6534 阅读 · 0 评论