《匯編語言(王爽)》讀書筆記

最近在讀王爽版的《匯編語言》,把需要記錄的內(nèi)容記錄在這里。

第一章 基礎(chǔ)知識(shí)


  • 編譯器:將匯編指令轉(zhuǎn)換成機(jī)器指令的翻譯程序。
  • 一個(gè)CPU可以引出3種總線的寬度標(biāo)志了這個(gè)CPU的不同方面的性能:
  • 地址總線的寬度決定了CPU的尋址能力;
  • 數(shù)據(jù)總線的寬度決定了CPU與其他器件進(jìn)行數(shù)據(jù)傳送時(shí)的一次數(shù)據(jù)傳送量;
  • 控制總線的寬度決定了CPU對(duì)系統(tǒng)中的其他器件的控制能力。
  • CPU對(duì)外部設(shè)備不能直接控制,直接控制這些設(shè)備進(jìn)行工作的是插在擴(kuò)展插槽上的接口卡。CPU通過總線向接口卡發(fā)送命令,接口卡根據(jù)CPU的命令控制外設(shè)進(jìn)行工作。
  • 存儲(chǔ)器分為兩類:隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)。
    隨機(jī)存儲(chǔ)器可讀可寫,但是必須帶電存儲(chǔ),關(guān)機(jī)后存儲(chǔ)的內(nèi)容丟失;
    只讀存儲(chǔ)器只能讀取不能寫入,關(guān)機(jī)后其中的內(nèi)容不丟失。

第二章 寄存器


  • 8086cpu所有寄存器都是16位的。
  • 進(jìn)行數(shù)據(jù)傳送或運(yùn)算時(shí),指令的兩個(gè)操作對(duì)象的位數(shù)應(yīng)該是一致的。
  • 地址加法器將兩個(gè)16位的段地址和偏移地址合成一個(gè)20位的物理地址,物理地址=段地址16+偏移地址*。
  • 段寄存器:CS、DS、SS、ES。
  • CS為代碼段寄存器,IP為指令指針寄存器。8086機(jī)中,任意時(shí)刻,CPU將CS:IP指向的內(nèi)容當(dāng)作指令執(zhí)行。讀取一條指令后,IP中的值自動(dòng)增加,以使CPU可以讀取下一條指令。
  • 在8086CPU加電啟動(dòng)或復(fù)位后(即CPU剛開始工作時(shí))CS和IP被設(shè)置為CS=FFFFHIP=0000H,即在8086PC機(jī)剛啟動(dòng)時(shí),CPU從內(nèi)存FFFF0H單元中讀取指令執(zhí)行,F(xiàn)FFF0H單元中的指令是8086PC機(jī)開機(jī)后執(zhí)行的第一條指令。
  • 修改CS:IP,使用jmp 段地址:偏移地址;修改IP,使用某一合法寄存器

第三章 寄存器(內(nèi)存訪問)


  • 字單元:存放一個(gè)字型數(shù)據(jù)(16位)的內(nèi)存單元,起始地址為N的字單元簡(jiǎn)稱為N地址字單元。
  • DS寄存器通常用來存放要訪問的數(shù)據(jù)的段地址。
mov bx, 1000H
mov ds, bx
mov al, [0] ;將10000H(1000:0)中的數(shù)據(jù)讀到al中
  • 8086CPU不支持將數(shù)據(jù)直接送入段寄存器,需要寄存器進(jìn)行中轉(zhuǎn)。
  • 段寄存器SS和寄存器SP,棧頂?shù)亩蔚刂反娣旁赟S中,偏移地址存放在SP中。任何時(shí)刻,SS:SP指向棧頂元素。
  • 8086CPU中,入棧時(shí),棧頂從高地址低地址方向增長(zhǎng)。
  • 棧空,SS:SP指向棧空間最高地址單元的下一個(gè)單元。
  • push ax的時(shí)候,CPU先將SP=SP-2,使得SS:SP指向新的棧頂單元,然后再將寄存器中的數(shù)據(jù)送入SS:SP指向的內(nèi)存單元處;pop ax是先讀取SS:SP處的數(shù)據(jù),后改變SP=SP+2。
  • 如果使用10000H~1FFFFH這段空間當(dāng)作棧段,初始狀態(tài)是空的,此時(shí)SS=1000H,SP=0
    因?yàn)楫?dāng)棧中只有一個(gè)元素的時(shí)候SS=1000H,SP=FFFEH(2的倍數(shù),8086CPU的入棧和出棧操作都是以字為單位進(jìn)行的),唯一一個(gè)元素出棧后,SP=SP+2,SP=0。
  • 一個(gè)堆棧最大為64KB,因?yàn)镾P的范圍是0~FFFFH,從棧空時(shí)候SP=0,再到棧滿SP=0。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 8086匯編 本筆記是筆者觀看小甲魚老師(魚C論壇)《零基礎(chǔ)入門學(xué)習(xí)匯編語言》系列視頻的筆記,在此感謝他和像他一樣...
    Gibbs基閱讀 37,422評(píng)論 8 114
  • 王爽匯編全書知識(shí)點(diǎn)大綱 第一章 基礎(chǔ)知識(shí) 機(jī)器語言 匯編語言的產(chǎn)生 匯編語言的組成 存儲(chǔ)器 cpu對(duì)存儲(chǔ)器的讀寫 ...
    2c3ba901516f閱讀 2,455評(píng)論 0 1
  • 第六章 斷 “什么?一個(gè)怪物的叫聲?”諾克薩斯行軍營(yíng)中,一個(gè)身著黑色長(zhǎng)袍的人形站在前方,德萊厄斯則站立在下方。 很...
    枉算盡誰的心機(jī)閱讀 315評(píng)論 0 0
  • 作為一個(gè)社區(qū)類的網(wǎng)站,我覺得它的核心價(jià)值是“方便,信任,實(shí)惠”,針對(duì)這些我想說說我的建議,純屬個(gè)人看法,不喜勿...
    b8744db0178b閱讀 249評(píng)論 0 0
  • 我在沙發(fā)這頭,母親在那頭,和母親你一句我一言地聊著天,聊著聊著母親竟然抹起了眼淚,母親很少這樣的,我頓時(shí)啞...
    彥淵閱讀 907評(píng)論 2 2