匯 編語(yǔ)言_00

匯編語(yǔ)言(assembly language)是一種用于電子計(jì)算機(jī)般婆、微處理器已卷、微控制器或其他可編程器件的低級(jí)語(yǔ)言,亦稱(chēng)為符號(hào)語(yǔ)言雁比。在匯編語(yǔ)言中稚虎,用助記符(Mnemonics)代替機(jī)器指令操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替指令或操作數(shù)的地址偎捎。在不同的設(shè)備中蠢终,匯編語(yǔ)言對(duì)應(yīng)著不同的機(jī)器語(yǔ)言指令集非洲,通過(guò)匯編過(guò)程轉(zhuǎn)換成機(jī)器指令。普遍地說(shuō)蜕径,特定的匯編語(yǔ)言和特定的機(jī)器語(yǔ)言指令集是一一對(duì)應(yīng)的,不同平臺(tái)之間不可直接移植两踏。

許多匯編程序?yàn)槌绦蜷_(kāi)發(fā)、匯編控制兜喻、輔助調(diào)試提供了額外的支持機(jī)制梦染。有的匯編語(yǔ)言編程工具經(jīng)常會(huì)提供宏,它們也被稱(chēng)為宏匯編器朴皆。
匯編語(yǔ)言不像其他大多數(shù)的程序設(shè)計(jì)語(yǔ)言一樣被廣泛用于程序設(shè)計(jì)帕识。在今天的實(shí)際應(yīng)用中,它通常被應(yīng)用在底層遂铡,硬件操作和高要求的程序優(yōu)化的場(chǎng)合肮疗。驅(qū)動(dòng)程序、嵌入式操作系統(tǒng)和實(shí)時(shí)運(yùn)行程序都需要匯編語(yǔ)言扒接。

匯編語(yǔ)言的主體是匯編指令伪货。匯編指令和機(jī)器指令的差別在于指令的表示方法上。匯編指令是機(jī)器指令便于記憶的書(shū)寫(xiě)格式钾怔。
匯編指令編寫(xiě)的程序通過(guò)編譯器轉(zhuǎn)換成計(jì)算機(jī)能讀懂的機(jī)器指令碱呼,再進(jìn)行執(zhí)行。

CPU寄存器
8086 CPU 寄存器總共為 14 個(gè)宗侦,且均為 16 位 愚臀。
即 AX,BX矾利,CX姑裂,DX,SP男旗,BP舶斧,SI,DI剑肯,IP捧毛,F(xiàn)LAG,CS让网,DS呀忧,SS,ES 共 14 個(gè)溃睹。

8086內(nèi)部寄存器.png
  • 通用寄存器
通用寄存器可用于傳送和暫存數(shù)據(jù)而账,也可參與算術(shù)邏輯運(yùn)算,并保存運(yùn)算結(jié)果因篇。除此之外泞辐,它們還各自具有一些特殊功能笔横。通用寄存器的長(zhǎng)度取決于機(jī)器字長(zhǎng),匯編語(yǔ)言程序員必須熟悉每個(gè)寄存器的一般用途和特殊用途咐吼,只有這樣吹缔,才能在程序中做到正確、合理地使用它們锯茄。
  • 數(shù)據(jù)存儲(chǔ)器
數(shù)據(jù)寄存器主要用來(lái)保存操作數(shù)和運(yùn)算結(jié)果等信息厢塘,從而節(jié)省讀取操作數(shù)所需占用總線和訪問(wèn)存儲(chǔ)器的時(shí)間。
* AX(Accumulator):累加寄存器肌幽,也稱(chēng)之為累加器晚碾;
* BX(Base):基地址寄存器;
* CX(Count):計(jì)數(shù)器寄存器喂急;
* DX(Data):數(shù)據(jù)寄存器格嘁;

由于在 8086 之前的 CPU 為 8 位 CPU,所以為了兼容以前的 8 位程序廊移,在 8086 CPU 中糕簿,每一個(gè)數(shù)據(jù)寄存器都可以當(dāng)做兩個(gè)單獨(dú)的寄存器來(lái)使用,由此画机,每一個(gè) 16 位寄存器就可以當(dāng)做 2 個(gè)獨(dú)立的 8 位寄存器來(lái)使用了 冶伞。

  • AX 寄存器可以分為兩個(gè)獨(dú)立的 8 位的 AH 和 AL 寄存器;
  • BX 寄存器可以分為兩個(gè)獨(dú)立的 8 位的 BH 和 BL 寄存器步氏;
  • CX 寄存器可以分為兩個(gè)獨(dú)立的 8 位的 CH 和 CL 寄存器腰耙;
  • DX 寄存器可以分為兩個(gè)獨(dú)立的 8 位的 DH 和 DL 寄存器与斤;
  • 指針寄存器

    • SP(Stack Pointer):堆棧指針寄存器;
    • BP(Base Pointer):基指針寄存器霜旧;
  • 變址寄存器

    • SI(Source Index):源變址寄存器隆嗅;
    • DI(Destination Index):目的變址寄存器界阁;
  • 控制寄存器

    • IP(Instruction Pointer):指令指針寄存器,是一個(gè)16位專(zhuān)用寄存器胖喳,它指向當(dāng)前需要取出的指令字節(jié)泡躯,當(dāng)BIU從內(nèi)存中取出一個(gè)指令字節(jié)后,IP就自動(dòng)加(取出該字節(jié)的長(zhǎng)度丽焊,如:BIU從內(nèi)存中取出的是1個(gè)字節(jié)较剃,IP就會(huì)自動(dòng)加1,如果BIU從內(nèi)存中取出的字節(jié)數(shù)長(zhǎng)度為3技健,IP就自動(dòng)加3)写穴,指向下一個(gè)指令字節(jié)。注意雌贱,IP指向的是指令地址的段內(nèi)地址偏移量啊送,又稱(chēng)偏移地址(Offset Address)或有效地址(EA偿短,Effective Address)。
    • FLAG:標(biāo)志寄存器馋没,又稱(chēng)程序狀態(tài)字(Program Status Word,PSW)昔逗。這是一個(gè)存放條件標(biāo)志、控制標(biāo)志寄存器篷朵,主要用于反映處理器的狀態(tài)和運(yùn)算結(jié)果的某些特征及控制指令的執(zhí)行纤子。
  • 段寄存器

段寄存器是因?yàn)閷?duì)內(nèi)存的分段管理而設(shè)置的。計(jì)算機(jī)需要對(duì)內(nèi)存分段款票,以分配給不同的程序使用(類(lèi)似于硬盤(pán)分頁(yè))控硼。在描述內(nèi)存分段時(shí),需要有如下段的信息:1.段的大邪佟卡乾;2.段的起始地址;3.段的管理屬性(禁止寫(xiě)入/禁止執(zhí)行/系統(tǒng)專(zhuān)用等)缚够。需要用8個(gè)字節(jié)(64位)存儲(chǔ)這些信息幔妨,但段寄存器只有16位,因此段寄存器中只能存儲(chǔ)段號(hào)(segment selector谍椅,也譯作“段選擇符”)误堡,再由段號(hào)映射到存在內(nèi)存中的GDT(global (segment) descriptor table,全局段號(hào)記錄表)雏吭,讀取段的信息锁施。16位CPU有四個(gè)16位段寄存器,所以杖们,其程序可同時(shí)訪問(wèn)四個(gè)不同含義的段悉抵。8086CPU有20根地址線,最大可尋址內(nèi)存空間為1MB摘完。而8086的寄存器只有16位姥饰,指令指針(IP)和變址寄存器(SI、DI)也是16位的孝治。用16位的地址尋址1MB空間是不可能的列粪。所以就要把內(nèi)存分段,也就是把1MB空間分為24谈飒,即16個(gè)段岂座,每段不超過(guò)64KB(216,16位數(shù)據(jù)線就可以尋址)。在8086中設(shè)置4個(gè)16位的段寄存器步绸,用于管理4種段:CS是代碼段掺逼,DS是數(shù)據(jù)段,SS是堆棧段瓤介,ES是附加段吕喘。把內(nèi)存分段后赘那,每一個(gè)段就有一個(gè)段基址,段寄存器保存的就是這個(gè)段基址的高16位氯质,這個(gè)16位的地址左移四位(后面加上4個(gè)0)就可構(gòu)成20位的段基址募舟。
  • CS(Code Segment):代碼段寄存器,放當(dāng)前正在運(yùn)行的程序代碼所在段的段基址闻察,表示當(dāng)前使用的指令代碼可以從該段寄存器指定的存儲(chǔ)器段中取得拱礁,相應(yīng)的偏移量則由IP提供。
  • DS(Data Segment):數(shù)據(jù)段寄存器辕漂,指出當(dāng)前程序使用的數(shù)據(jù)所存放段的最低地址呢灶,即存放數(shù)據(jù)段的段基址。
  • SS(Stack Segment):堆棧段寄存器钉嘹,指出當(dāng)前堆棧的底部地址鸯乃,即存放堆棧段的段基址。
  • ES(Extra Segment):附加段寄存器跋涣,指出當(dāng)前程序使用附加數(shù)據(jù)段的段基址缨睡,該段是串操作指令中目的串所在的段。

SP 寄存器實(shí)質(zhì)上必須和 SS 段寄存器一起使用

編譯工具

語(yǔ)法

8086 CPU 寄存器簡(jiǎn)介

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末陈辱,一起剝皮案震驚了整個(gè)濱河市奖年,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沛贪,老刑警劉巖陋守,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鹏浅,居然都是意外死亡嗅义,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)隐砸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蝙眶,你說(shuō)我怎么就攤上這事季希。” “怎么了幽纷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵式塌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我友浸,道長(zhǎng)峰尝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任收恢,我火速辦了婚禮武学,結(jié)果婚禮上祭往,老公的妹妹穿的比我還像新娘。我一直安慰自己火窒,他們只是感情好硼补,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著熏矿,像睡著了一般已骇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上票编,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天褪储,我揣著相機(jī)與錄音,去河邊找鬼慧域。 笑死鲤竹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吊趾。 我是一名探鬼主播宛裕,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼论泛!你這毒婦竟也來(lái)了揩尸?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤屁奏,失蹤者是張志新(化名)和其女友劉穎岩榆,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體坟瓢,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勇边,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了折联。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粒褒。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诚镰,靈堂內(nèi)的尸體忽然破棺而出奕坟,到底是詐尸還是另有隱情,我是刑警寧澤清笨,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布月杉,位于F島的核電站,受9級(jí)特大地震影響抠艾,放射性物質(zhì)發(fā)生泄漏苛萎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腌歉。 院中可真熱鬧蛙酪,春花似錦、人聲如沸究履。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)最仑。三九已至藐俺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泥彤,已是汗流浹背欲芹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吟吝,地道東北人菱父。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像剑逃,于是被迫代替她去往敵國(guó)和親浙宜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 8086匯編 本筆記是筆者觀看小甲魚(yú)老師(魚(yú)C論壇)《零基礎(chǔ)入門(mén)學(xué)習(xí)匯編語(yǔ)言》系列視頻的筆記,在此感謝他和像他一樣...
    Gibbs基閱讀 37,207評(píng)論 8 114
  • 王爽匯編全書(shū)知識(shí)點(diǎn)大綱 第一章 基礎(chǔ)知識(shí) 機(jī)器語(yǔ)言 匯編語(yǔ)言的產(chǎn)生 匯編語(yǔ)言的組成 存儲(chǔ)器 cpu對(duì)存儲(chǔ)器的讀寫(xiě) ...
    2c3ba901516f閱讀 2,418評(píng)論 0 1
  • 計(jì)算機(jī)通過(guò)執(zhí)行指令序列來(lái)使機(jī)器得以工作辛慰,所以對(duì)于每一系列的計(jì)算機(jī)都有指定的一組指令集供計(jì)算機(jī)使用区匠,這組指令...
    未來(lái)科技工作室閱讀 7,994評(píng)論 1 10
  • 越底層越單純!真正的程序員都需要了解的一門(mén)非常重要的語(yǔ)言,匯編! 機(jī)器語(yǔ)言 我們所寫(xiě)的語(yǔ)言最終安裝在機(jī)器上的是什么...
    瑞陽(yáng)gg閱讀 593評(píng)論 0 0
  • 一個(gè)人是何等滋味?孤獨(dú)到嗓子眼里的時(shí)候 你會(huì)去到人聲嘈雜之處接點(diǎn)人氣帅腌。 當(dāng)你無(wú)處可去之時(shí)辱志,可以去很多地方接人氣:飯...
    莊柏閱讀 235評(píng)論 0 1