久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

匯編語(yǔ)言存儲(chǔ)及寄存器原理解析

這篇文章主要介紹了匯編語(yǔ)言存儲(chǔ)及寄存器原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了匯編語(yǔ)言存儲(chǔ)及寄存器原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

字的存儲(chǔ)

一個(gè)16位寄存器可以存放一個(gè)字(16位)或者一個(gè)字節(jié)(8位),當(dāng)存放一個(gè)字節(jié)的時(shí)候只需要一個(gè)內(nèi)存單元(內(nèi)存單元是以字節(jié)為單位的,8位),而存放一個(gè)字需要兩個(gè)內(nèi)存單元,這樣存放一個(gè)字就需要兩個(gè)連續(xù)的內(nèi)存單元,這個(gè)16位的字,高位存放在高地址,低位存放在低地址。

內(nèi)存地址 內(nèi)存數(shù)據(jù)
0 20H
1 4EH
2 12H
3 00H

對(duì)于字來(lái)說(shuō)0就是低地址單元,1是高地址單元,則字型數(shù)據(jù)4E20H的低地址位20存放在0號(hào)單元,高地址位4E存放在高地址單元,因?yàn)樗钠鹗嫉刂窞?,又可以稱作0地址字單元。

段地址寄存器

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

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


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

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

內(nèi)存地址 內(nèi)存數(shù)據(jù)
0 20H
1 4EH
2 12H
3 00H

所以一個(gè)內(nèi)存單元地址的確定可以通過(guò)段地址DS+[偏移地址]進(jìn)行確定。

add和sub指令

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


add 寄存器,數(shù)據(jù)    例如:add ax,8
add 寄存器,寄存器   例如:add ax,bx
add 寄存器,內(nèi)存單元    例如:add ax,[0]
add 內(nèi)存單元,寄存器    例如:add [0],ax


棧,是一段具有特殊訪問(wèn)方式的存儲(chǔ)空間,它的存取規(guī)則是先進(jìn)后出,后進(jìn)先出,就像是一個(gè)上面沒(méi)有蓋的桶,最后放進(jìn)去的東西只能最先取出來(lái)。

那么我們?cè)趺粗涝谶B續(xù)的存儲(chǔ)空間中,哪一段是棧,哪一段不是棧,回想一下,CPU是根據(jù)CS、IP兩個(gè)寄存器中存放的值判斷當(dāng)前指令存放的位置,根據(jù)DS、偏移地址判斷數(shù)據(jù)存放在哪個(gè)內(nèi)存單元,顯然,也會(huì)有相應(yīng)的寄存器用來(lái)判斷哪一段是棧,在8086 CPU中,通過(guò)段寄存器SS和寄存器SP就可以確定棧的位置,棧有棧頂和棧底,棧頂?shù)亩蔚刂反娣旁赟S中,SP用于存放偏移地址,在任意時(shí)刻SS:SP指向棧頂元素,它指向的第一個(gè)元素可以理解為棧底,以后每存放一個(gè)數(shù)據(jù)SS:SP就向上提升,而它所指向的就是棧頂。

PUSH和POP指令

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

內(nèi)存地址 數(shù)據(jù)
1000AH
1000BH
1000CH
1000DH
1000EH
1000FH

首先,因?yàn)镾S為1000H,SP為000EH,所以棧頂是指向1000EH位置的:
SS為1000H,SP為000EH,AX為1234H

內(nèi)存地址 數(shù)據(jù)
1000AH
1000BH
1000CH
1000DH
1000EH [SS:SP]
1000FH

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

內(nèi)存地址 數(shù)據(jù)
1000AH
1000BH
1000CH 34[SS:SP]
1000DH 12
1000EH
1000FH

此時(shí),新的棧頂就變成了1000CH,接著,我們?cè)賹⒁粋€(gè)立即數(shù)5678H壓入棧中,使用push 5678:
SS為1000H,SP為000AH,AX為1234H。

內(nèi)存地址 數(shù)據(jù)
1000AH 78[SS:SP]
1000BH 56
1000CH 34
1000DH 12
1000EH
1000FH

這是,棧頂就是1000AH,SS為1000H,SP為000AH。
演示完了入棧,我們?cè)龠M(jìn)行出棧,使用pop ax操作,將出棧的數(shù)據(jù)放入到ax寄存器中:
SS為1000H,SP為000CH,AX為5678H。

內(nèi)存地址 數(shù)據(jù)
1000AH 78
1000BH 56
1000CH 34[SS:SP]
1000DH 12
1000EH
1000FH

注意,出棧并不意味著之前寫入內(nèi)存單元的數(shù)據(jù)被刪除了,之前寫入的數(shù)據(jù)還是存在的,只不過(guò)它不在棧中了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持html5模板網(wǎng)。

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

相關(guān)文檔推薦

這篇文章主要介紹了匯編中的數(shù)組分配和指針的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)
這篇文章主要介紹了asm基礎(chǔ)——匯編指令之in/out指令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)
這篇文章主要介紹了匯編語(yǔ)言 寄存器內(nèi)存訪問(wèn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
這篇文章主要介紹了使用匯編語(yǔ)言實(shí)現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編
這篇文章主要介紹了匯編語(yǔ)言位向量(位映射)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)
這篇文章主要介紹了匯編語(yǔ)言AND指令實(shí)現(xiàn)對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)與操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面
主站蜘蛛池模板: 韩日中文字幕 | 亚洲91av| 人人叉| 成人在线精品 | 97人澡人人添人人爽欧美 | 在线观看免费av片 | 亚洲一区久久 | 国产视频精品免费 | 欧洲精品久久久久毛片完整版 | 一区二区三区在线免费观看 | 国产精品久久久久久中文字 | 欧美一级免费黄色片 | www.色综合 | 日韩精品人成在线播放 | 精品久久久久一区二区国产 | 欧美在线高清 | 欧美一区二区免费电影 | 日韩综合 | 午夜99 | 亚洲精品不卡 | 一区二区三区免费网站 | 欧美日韩一区二区三区在线观看 | 日韩欧美在线不卡 | 久久精品 | 国产成人免费在线 | 97色在线观看免费视频 | 黄色精品 | 啪一啪 | 欧美三级三级三级爽爽爽 | 欧美久久电影 | 在线观看av网站永久 | 91av小视频| 拍真实国产伦偷精品 | 久久综合久色欧美综合狠狠 | 日日干天天干 | 丁香综合 | 99久久免费精品国产免费高清 | 久久伊人一区 | 在线国产一区 | 天天爽夜夜爽精品视频婷婷 | 美女福利网站 |