亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

電腦機(jī)器碼了解 機(jī)器碼是什么碼( 二 )


大多數(shù)的機(jī)器碼格式包括以下四種:
三地址機(jī)器碼格式
三地址機(jī)器碼格式主要在RISC CPU中用到,例如下邊ARM一條匯編指令
ADD r1,r2,r3上述代碼表示將r2寄存器中的值加上r3寄存器中的值,寫入達(dá)到r1寄存器
雙地址機(jī)器碼格式
雙地址機(jī)器碼格式主要在CISC CPU中用到,例如下邊Inter Pentium的一條匯編指令
ADD AX BX上述代碼講過BX寄存器的內(nèi)容與AX相加后,寫入到AX中,雙地址機(jī)器碼的壞處也很明顯了,例如AX寄存器的值執(zhí)行命令后就被覆蓋了,不能夠重用了 。
單地址機(jī)器碼格式
單地址機(jī)器碼格式在RISC,CISC CPU都會用到,例如下邊ARM一條匯編指令
LDA r1上述代碼表示將r1寄存器的值加到累加器(一種寄存器,用于存儲中間結(jié)果),單地址機(jī)器碼其實(shí)也是有兩個操作數(shù),一個是r1,另一個就是累加器,因?yàn)長DA r1已經(jīng)意味著追加累加器的意思,所有不需要指定 。
零地址機(jī)器碼格式
零地址機(jī)器碼格式一般操作棧頂?shù)臄?shù)據(jù),不需要寄存器參與,零地址機(jī)器碼格式不會用到地址,對于單操作數(shù)運(yùn)算,例如遞增,遞減,取負(fù),清零等一元運(yùn)算,直接用棧頂?shù)臄?shù)據(jù),對于雙操作數(shù)從棧頂陸續(xù)出棧兩個數(shù),然后運(yùn)算,下邊舉例子,例如下邊的表達(dá)式
Z=(A+B).(C-D)
PUSH A;A入棧PUSH B;B入棧ADD;棧頂兩個數(shù)出棧,相加,然后結(jié)果入棧PUSH C;C入棧PUSH D;D入棧SUB;棧頂兩個數(shù)據(jù)出棧,相減,然后結(jié)果入棧MUL;棧頂兩個數(shù)據(jù)出棧,相乘,然后結(jié)果入棧POPZ;棧頂數(shù)據(jù)出棧二.番外篇2.1 寄存器寄存器和內(nèi)存一樣都是存儲器,從功能上講跟內(nèi)存沒什么區(qū)別,都是用來存儲數(shù)據(jù),從其他角度來看,寄存器和內(nèi)存有如下區(qū)別
a.寄存器的速度比內(nèi)存快N的等級,因此為了加快CPU獲取指令或者數(shù)據(jù)的速度,就會將最近要訪問的數(shù)據(jù)放入到寄存器中 。
b.寄存器的個數(shù)是有限制,一般計算機(jī)不到百個,寄存器尋址直接用名稱,例如ARM CPU寄存器 r1,r1就是寄存器的名稱,可以通過r1直接訪問寄存器的內(nèi)容,而內(nèi)存則用地址,例如1234表示內(nèi)存的地址
在CPU中寄存器分為以下幾種
內(nèi)存地址寄存器(程序員不可見)
保存了當(dāng)前正在讀或者正在寫的內(nèi)存地址
內(nèi)存數(shù)據(jù)寄存器(程序員不可見)
保存了當(dāng)前剛從內(nèi)存讀出的數(shù)據(jù)或者準(zhǔn)備要寫入內(nèi)存的數(shù)據(jù)
PC 程序計數(shù)器(程序員不可見)
保存了下一條要執(zhí)行的指令的內(nèi)存地址
IR指令寄存器(程序員不可見)
保存了當(dāng)前正在執(zhí)行的指令
通用寄存器(程序員可見)
存儲臨時的數(shù)據(jù)例如中間結(jié)果)
特殊寄存器(程序員不可見)
例如累加器,條件寄存器等
2.2 機(jī)器碼長度設(shè)計在1.2章節(jié)中闡述了機(jī)器碼的格式,沒有指出機(jī)器碼長度的設(shè)計,這里指出 。
指令長度算法:
操作碼長度+控制位長度+寄存器尋址個數(shù)*寄存器占用位數(shù)+內(nèi)存直接取址個數(shù)*內(nèi)存占用位數(shù)+立即數(shù)長度
操作碼長度:
CPU支持的指令個數(shù),如果支持8個指令,那操作碼長度就是3
控制位長度:
這個是固定的
寄存器尋址個數(shù)*寄存器占用位數(shù):
寄存器占用位數(shù)可以通過程序員可以訪問的寄存器個數(shù)換算得知,如果寄存器可以訪問的寄存器個數(shù)為32,那么寄存器占用位數(shù)就是5(2的5次方=32)
寄存器尋址個數(shù)表示機(jī)器碼中通過寄存器獲取操作數(shù)或者間接通過寄存器獲取操作數(shù)的寄存器個數(shù)例如
ADD r1,r2 表示通過r1,r2兩個寄存器獲取操作數(shù),那么寄存器尋址個數(shù)就是2
內(nèi)存直接取址個數(shù)*內(nèi)存占用位數(shù):
內(nèi)存直接取址個數(shù)表示有多少通過內(nèi)存直接尋址獲取操作數(shù),例如


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: