混子汇编语言学习之03笔记

第3章

开篇引言

本章核心内容为字的理解认识、和几个汇编指令的理解。
非常重要,念“zhan”,这个东西也是面试最常考的东西。

1、内存中字的储存

在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。
例子容易记忆:


(1)0地址单元中存放的字节型数据:20H;
(2)0地址字单元中存放的字型数据:4E20H;
(3)2地址单元中存放的字节型数据:12H;
(4)2地址字单元中存放的字型数据:0012H;

2、DS 和 [address]

DS寄存器:通常用来存放要访问数据的段地址
[address]表示一个偏移地址为address的内存单元,段地址默认放在ds中
通过数据段段地址和偏移地址即可定位内存单元。
例子:
mov bx, 1000H //bx = 1000H
mov ds,bx //ds = 1000H,前面两步主要是为ds赋值,也就是提供段地址,因为ds寄存器不能直接进行数值赋值!
mov al,[0] //把10000H(1000:0)中的数据赋值给al;

3、字的传送

8086CPU是16位结构,有16根数据线,一次性可以传输16位数据,也就刚好一个字的数据。

例子:

需要注意一个字的数据占两个字节,也就是16位,对应的如果往地址里面写值时,这个偏移地址应该是以2为间隔的!

4、栈

栈是一种具有特殊的访问方式的存储空间。
栈先进的后出,后进的先出
书中的例子比较形象好理解:

栈的基本操作
  • 出栈:从栈顶取出一个元素。
  • 进栈:将一个新元素放到栈顶。
CPU的栈机制

栈是定义的一段内存空间,8086中提供了两个指令来对其进行操作

  • PUSH:出栈指令
  • POP:入栈指令
需要注意8086中对栈的操作都是以字为单位的,也就是操作的是两个字节的空间。

SS、SP

  • 栈段寄存器SS,存放段地址,
  • SP寄存器存放偏移地址,
    任意时刻,SS:SP指向栈顶元素

8086CPU中,入栈时,栈顶从高地址向低地址方向增长

分析:

push ax表示将寄存器ax中的数据送入栈中,由两步完成。

先改变SP,后向SS:SP处传送

SP=SP-2,SS:SP指向当前栈顶前面的单元,以当前栈顶前面的单元为新的栈顶;
将ax中的内容送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶。

先读取SS:SP中数据,后改变SP

如图所示:
image.png

pop ax表示从栈顶取出数据送入ax,由以下两步完成。将SS:SP指向的内存单元处的数据送入ax中;
SP=SP+2,SS:SP指向当前栈顶下面的单元,以当前栈顶下面的单元为新的栈顶。

例子理解:

要求:
1、将10000H~1000FH这段空间当作栈,初始状态栈是空的;
2、设置AX=001AH,BX=001BH;
3、将AX、BX中的数据入栈;
4、然后将AX、BX清零;
5、从栈中恢复AX、BX原来的内容。

mov ax, 1000H                               
mov ss, ax              //初始化段地址ss为1000H
mov sp, 0010H           //设置栈顶的偏移地址,因为栈空,故SP=0010H(最底部字单元地址加2)
mov ax, 001AH           //ax=001AH
mov bx, 001BH           //bx=001BH

push ax                //将ax压栈,地址为1000:000EH  先进栈
push bx    ;           //将bx压栈,地址为1000:000CH 后进栈

sub ax, ax  // ;将ax清零,也可以用mov ax,0,
             //;sub ax,ax的机器码为2个字节,
            // ;mov ax,0的机器码为3个字节。      
sub bx, bx  //同上
 /*从栈中恢复ax、bx原来的数据*/ 
pop bx  ;     //出栈,数据储存到bx中;先出栈
pop ax  ;     //出栈,数据储存到ax中;后出栈
上述例子对本章进行了一个总结学习,需要明白栈是先进后出的!

参考资料 王爽《汇编语言第三版》

欢迎关注本人微信公众号:那个混子
记录自己学习的过程,分享乐趣、技术、想法、感悟、情感!

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

推荐阅读更多精彩内容