MASM初探

X86处理器主要有四种操作模式:

  • 保护模式
  • 虚拟8086模式
  • 实地址模式
  • 系统管理模式

一、保护模式:保护模式是CPU的原生状态,在这种模式下,所有的指令和特性都是可用的,分配给程序独立的内存区域叫做段,而CPU会阻止程序使用自身段范围之外的内存。
二、虚拟8086模式:保护模式下,处理器可以在一个安全的环境中直接执行是地址模式软件,如果一个程序崩溃了或是试图向系统内存区域写数据,都不会影响到同一时间内执行的其他程序。现代操作系统可以同时执行多个独立的虚拟8086会话。WIN系统下一个CMD命令所运行的MS-DOS程序就是一个独立的虚拟8086模式的应用,总的来说虚拟8086模式就是运行在保护模式下的实地址模式。
三、实地址模式:实地址模式就是早期的Intel处理器的编程环境,但是增加了一些其他的特性,如切换到其他模式的功能。当程序需要直接访问系统内存和硬件的时候,就是这种模式。
四、系统管理模式:这种模式会向操作系统提供实现诸如电源管理和系统安全等功能的机制,这些功能是由计算机制造商实现的,是为了一个特定的系统设置而定制的处理器。

小结:

现代MASM汇编都是基于保护模式下编程,WINDOWS对其权限做了一些限制。相对的也提供了一些便捷的调用功能。

地址空间

在32位保护模式下,一个任务或程序最大可寻址4GB的线性地址空间。从P6处理器开始,一种被称为扩展物理寻址的技术可以使得可以被寻址的物理内存增加到了64GB。而实地址模式下只能寻址1MB。

32位通用寄存器

8个通用寄存器:EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI
6个16位段寄存器:CS,ES,SS,FS,DS,GS
1个标志位寄存器:EFLAGS
1指令指针寄存器:EIP

  • 通用寄存器EAX,EBX,ECX,EDX 各自都有其高8位寄存和低8位寄存器。
    如:EAX的高8位寄存器为AH,低8位为AL以此类推。
  • 其他通用寄存器ESI,EDI,EBP,ESP只能用32位或16位名称来访问。
    如:32位名称ESI,16位名称SI,以此类推。

特殊用法:某些通用寄存器有特殊用法。

  • 乘除指令默认使用EAX,通常被称为扩展累加寄存器。
  • ESP用于寻址堆栈数据,极少用于一般运算和数据传输,通常称为扩展堆栈指针寄存器。
  • ESI和EDI用于高速存储器传输指令。通常称为扩展源变址寄存器和扩展目的寄存器。
  • EBP通常是高级语言用来表示堆栈中函数参数和局部变量的引用。除了高级编程,他不用于一般算术运算和数据传输。通常称为扩展帧指针寄存器。
  • 16位段寄存器表示预先分配的区域的基址,这个内存区域称为段,保护模式中,段寄存器中存放的是段描述符指针。一些段中存放代码。其他段存放数据,还有一个堆栈段存放的是局部变量和函数参数。
  • cs是代码段寄存器
  • ds是数据段寄存器
  • ss是堆栈段寄存器
  • es是扩展段寄存器
  • fs是标志段寄存器
  • gs是全局段寄存器
  • EIP指令指针寄存器包含下一条将要执行的指令地址。
  • EFLAGS标志位寄存器器包含了独立的二进制位,用于控制CPU的操作或是反应一些CPU的操作结果。有些指令会影响这些二进制位。每个二进制位都代表不同含义。

EFLAGS

  • 控制标志位:控制位控制CPU的操作。如检测溢出时执行中断,或别的操作(方向标志位和中断标志位)。
  • 状态标志位:
  • 进位标志位CF:发生进位为1,无进位为0
  • 溢出标志位OF:发生溢出为1,无溢出为0
  • 符号标志位SF:算数或逻辑操作结果为负时为1
  • 零标志位ZF:算数或逻操作结果为0时为1
  • 辅助进位标志位AC:算数操作在8位操作数中产生了位3向位4进位时为1
  • 奇偶校验标志位PF:结果的最低有效位包含偶数个1时为1。

其他寄存器不列举了。都是浮点或单指令多数据,多指令多数据用到的寄存器。用于并行计算或是浮点计算。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,106评论 8 114
  • 算术和逻辑指令ADC : 带进位的加法(Addition with Carry)ADC{条件}{S} <dest...
    luffier阅读 3,698评论 0 3
  • 汇编基础教程 16位和32位的80x86汇编语言的区别 需要注意的是汇编不是一种语言,不同平台有不同的汇编语言对应...
    inwunwe阅读 9,472评论 2 19
  • 君自海上来 遗我双鲤鱼 一顾识君面 再顾展眉颜 三顾刻心间 君已定佳期 相见叙清欢 待得明月圆 奴做双飞翼 婷婷立...
    桂之华阅读 357评论 9 11
  • 昂~还未睡醒的小黄人!衣服还是有点手残的说。 晒着太阳的哔哩哔哩电视机~ 只用了黑色和白色!还是比较简单!最后拍黑白照!
    蘑菇很顽强阅读 399评论 5 3