pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

匯編語言存儲及寄存器原理解析

這篇文章主要介紹了匯編語言存儲及寄存器原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了匯編語言存儲及寄存器原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

字的存儲

一個16位寄存器可以存放一個字(16位)或者一個字節(8位),當存放一個字節的時候只需要一個內存單元(內存單元是以字節為單位的,8位),而存放一個字需要兩個內存單元,這樣存放一個字就需要兩個連續的內存單元,這個16位的字,高位存放在高地址,低位存放在低地址。

內存地址 內存數據
0 20H
1 4EH
2 12H
3 00H

對于字來說0就是低地址單元,1是高地址單元,則字型數據4E20H的低地址位20存放在0號單元,高地址位4E存放在高地址單元,因為它的起始地址為0,又可以稱作0地址字單元。

段地址寄存器

通過前面學過的知識我們可以知道當CPU想要對一個內存單元進行操作時,必須知道它的地址,要知道內存單元的地址就要知道它的段地址和偏移地址,在8086 CPU中,DS寄存器就是用來存放段地址的,執行指令的時候,CPU會自動讀取DS中的數據為內存單元的段地址,使用[偏移地址]來表示偏移地址,假設DS寄存器中此時存放的是1000H,那么mov al,[0]就表示將10000H(物理地址=段地址x16+偏移地址)地址上存放的數據存到al中。

如果想要修改DS寄存器中的值,那么直接使用mov指令將數字存到DS寄存器中是不行的,只能先將值存到一個寄存器中,再使用mov指令將這個寄存器中的值存到DS中,例:


mov bx,1000H
mov ds,bx
mov ax,[0]

這樣就將地址為10000H處的值存放到ax寄存器中了,也就是將下表中的4E20H存放到ax中。(ax是十六位,一個字,兩個字節)

內存地址 內存數據
0 20H
1 4EH
2 12H
3 00H

所以一個內存單元地址的確定可以通過段地址DS+[偏移地址]進行確定。

add和sub指令

顧名思義,add指令就是用來做加法操作的,sub指令就是用來做減法操作的,例如add ax,8這條指令相當于C語言中的ax = ax + 8,sub ax,8相當于C語言中的ax = ax - 8。
add和sub指令可以操作的對象有以下幾種形式,以add指令為例:


add 寄存器,數據    例如:add ax,8
add 寄存器,寄存器   例如:add ax,bx
add 寄存器,內存單元    例如:add ax,[0]
add 內存單元,寄存器    例如:add [0],ax


棧,是一段具有特殊訪問方式的存儲空間,它的存取規則是先進后出,后進先出,就像是一個上面沒有蓋的桶,最后放進去的東西只能最先取出來。

那么我們怎么知道在連續的存儲空間中,哪一段是棧,哪一段不是棧,回想一下,CPU是根據CS、IP兩個寄存器中存放的值判斷當前指令存放的位置,根據DS、偏移地址判斷數據存放在哪個內存單元,顯然,也會有相應的寄存器用來判斷哪一段是棧,在8086 CPU中,通過段寄存器SS和寄存器SP就可以確定棧的位置,棧有棧頂和棧底,棧頂的段地址存放在SS中,SP用于存放偏移地址,在任意時刻SS:SP指向棧頂元素,它指向的第一個元素可以理解為棧底,以后每存放一個數據SS:SP就向上提升,而它所指向的就是棧頂。

PUSH和POP指令

有了棧,那么就可以對棧進行存取數據的操作,使用的指令時push和pop指令,push指令用于入棧操作,也就是存數據,pop指令用于出棧,也就是取數據。8086 CPU的入棧、出棧操作都是以字為單位。
假設有如下一段連續的內存單元,此時SS為1000H,SP為000EH,AX為1234H,棧頂為1000EH。

內存地址 數據
1000AH
1000BH
1000CH
1000DH
1000EH
1000FH

首先,因為SS為1000H,SP為000EH,所以棧頂是指向1000EH位置的:
SS為1000H,SP為000EH,AX為1234H

內存地址 數據
1000AH
1000BH
1000CH
1000DH
1000EH [SS:SP]
1000FH

接著我們執行入棧操作,將AX(1234H)入棧,使用push ax操作進行壓棧。
SS為1000H,SP為000CH,AX為1234H

內存地址 數據
1000AH
1000BH
1000CH 34[SS:SP]
1000DH 12
1000EH
1000FH

此時,新的棧頂就變成了1000CH,接著,我們再將一個立即數5678H壓入棧中,使用push 5678:
SS為1000H,SP為000AH,AX為1234H。

內存地址 數據
1000AH 78[SS:SP]
1000BH 56
1000CH 34
1000DH 12
1000EH
1000FH

這是,棧頂就是1000AH,SS為1000H,SP為000AH。
演示完了入棧,我們再進行出棧,使用pop ax操作,將出棧的數據放入到ax寄存器中:
SS為1000H,SP為000CH,AX為5678H。

內存地址 數據
1000AH 78
1000BH 56
1000CH 34[SS:SP]
1000DH 12
1000EH
1000FH

注意,出棧并不意味著之前寫入內存單元的數據被刪除了,之前寫入的數據還是存在的,只不過它不在棧中了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持html5模板網。

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要介紹了匯編中的數組分配和指針的實現代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習
這篇文章主要介紹了asm基礎——匯編指令之in/out指令,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習
這篇文章主要介紹了匯編語言 寄存器內存訪問原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了使用匯編語言實現if else 循環函數調用的具體方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編
這篇文章主要介紹了匯編語言位向量(位映射)的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學
這篇文章主要介紹了匯編語言AND指令實現對兩個操作數進行邏輯(按位)與操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面
主站蜘蛛池模板: 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 江苏大隆凯科技有限公司 | 高温链条油|高温润滑脂|轴承润滑脂|机器人保养用油|干膜润滑剂-东莞卓越化学 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 金联宇电缆总代理-金联宇集团-广东金联宇电缆实业有限公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 台式核磁共振仪,玻璃软化点测定仪,旋转高温粘度计,测温锥和测温块-上海麟文仪器 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 单螺旋速冻机-双螺旋-流态化-隧道式-食品速冻机厂家-广州冰泉制冷 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | CNC机加工-数控加工-精密零件加工-ISO认证厂家-鑫创盟 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 陶瓷砂磨机,盘式砂磨机,棒销式砂磨机-无锡市少宏粉体科技有限公司 | 环压强度试验机-拉链拉力试验机-上海倾技仪器仪表科技有限公司 | 防爆电机-高压防爆电机-ybx4电动机厂家-河南省南洋防爆电机有限公司 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 圆形振动筛_圆筛_旋振筛_三次元振动筛-河南新乡德诚生产厂家 | 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 南京试剂|化学试剂|分析试剂|实验试剂|cas号查询-专业60年试剂销售企业 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 泥浆在线密度计厂家-防爆数字压力表-膜盒-远传压力表厂家-江苏大亚自控设备有限公司 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 云南成考网_云南成人高考报名网 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 |