匯編課件第一章_第1頁(yè)
匯編課件第一章_第2頁(yè)
匯編課件第一章_第3頁(yè)
匯編課件第一章_第4頁(yè)
匯編課件第一章_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

匯編語(yǔ)言數(shù)據(jù)的表示方法二進(jìn)制B八進(jìn)制O十進(jìn)制D十六進(jìn)制H數(shù)據(jù)的表示方法例:101110B,56O,2H--?D[冪乘法]2.5D-?B,?O,?H[整數(shù)部分除2取余,小數(shù)部分乘2取整]1.33D-?B,?O,?H并不是所有的十進(jìn)制小數(shù)都能轉(zhuǎn)換成二進(jìn)制基礎(chǔ)知識(shí)本章結(jié)構(gòu)1.4數(shù)據(jù)在機(jī)內(nèi)的表示形式1.3存儲(chǔ)器1.1計(jì)算機(jī)語(yǔ)言的發(fā)展1.2Intel8060微處理器簡(jiǎn)介1.5匯編源程序舉例1.1計(jì)算機(jī)語(yǔ)言的發(fā)展1.1.1機(jī)器語(yǔ)言1.1.2匯編語(yǔ)言1.1.3高級(jí)語(yǔ)言

1.1計(jì)算機(jī)語(yǔ)言的發(fā)展機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言FORTRANBASICCOBOLPASCALC/C++JAVA…...1.1計(jì)算機(jī)語(yǔ)言的發(fā)展1.1.1機(jī)器語(yǔ)言機(jī)器語(yǔ)言:依賴于機(jī)器的低級(jí)語(yǔ)言,書(shū)寫(xiě)格式為二進(jìn)制代碼。優(yōu)點(diǎn):執(zhí)行速度快,效率高。缺點(diǎn):表達(dá)的意義不直觀,編寫(xiě)、閱讀、調(diào)試較困難。1.1計(jì)算機(jī)語(yǔ)言的發(fā)展1.1.2匯編語(yǔ)言匯編語(yǔ)言:是一種符號(hào)語(yǔ)言,與機(jī)器語(yǔ)言一一對(duì)應(yīng);使用助記符表示相應(yīng)的操作,并遵循一定的語(yǔ)法規(guī)則。與機(jī)器語(yǔ)言有類似的優(yōu)、缺點(diǎn),但比機(jī)器語(yǔ)言更易于為人們所理解。

1.1計(jì)算機(jī)語(yǔ)言的發(fā)展1.1.3高級(jí)語(yǔ)言高級(jí)語(yǔ)言:面向人的語(yǔ)言,有多種類型。優(yōu)點(diǎn):便于閱讀,易學(xué)易用,不涉及硬件,具有通用性。缺點(diǎn):目標(biāo)代碼冗長(zhǎng),占用內(nèi)存多,從而執(zhí)行時(shí)間長(zhǎng),效率不高,不能對(duì)某些硬件進(jìn)行操作。程序要具有較快的執(zhí)行時(shí)間,或者只能占用較小的存儲(chǔ)容量程序與計(jì)算機(jī)硬件密切相關(guān),程序要直接、有效地控制硬件大型軟件需要提高性能、優(yōu)化處理的部分沒(méi)有合適的高級(jí)語(yǔ)言、或只能采用匯編語(yǔ)言的時(shí)候分析具體系統(tǒng)尤其是該系統(tǒng)的低層軟件、加密解密軟件、分析和防治計(jì)算機(jī)病毒等等1.1計(jì)算機(jī)語(yǔ)言的發(fā)展

匯編語(yǔ)言的應(yīng)用場(chǎng)合1.2

Intel8086微處理器簡(jiǎn)介1.2.1

Intel8086微處理器結(jié)構(gòu)1.2.2

Intel8086微處理器寄存器組1.2

Intel8086微處理器簡(jiǎn)介中央處理機(jī)

CPU總線控制邏輯

接口接口存儲(chǔ)器大容量存儲(chǔ)器I/O設(shè)備I/O子系統(tǒng)系統(tǒng)總線計(jì)算機(jī)系統(tǒng)包括硬件和軟件兩大部分。硬件:三個(gè)主要組成部分,用系統(tǒng)總線連接。

1.2

Intel8086微處理器簡(jiǎn)介

系統(tǒng)軟件(核心是操作系統(tǒng)operatingsystem)

—I/O驅(qū)動(dòng)程序(I/Odriver)—文件管理程序(filemanagement)—文本編輯程序(texteditor)—翻譯程序(translator)MASM.EXE/TASM.EXE—連接程序(linker)LINK.EXE/TLINK.EXE—裝入程序(loader)DEBUG.EXE—系統(tǒng)程序庫(kù)(systemlibrary)

用戶軟件軟件

1.2

Intel8086微處理器簡(jiǎn)介微處理器按功能可以分為兩部分:

—執(zhí)行部件EU(executionunit)—總線接口部件BIU(businterfaceunit)

LOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.1Intel8086微處理器結(jié)構(gòu)內(nèi)部暫存器

IP

ES

SS

DS

CS輸入/輸出控制電路執(zhí)行部分控制電路123456∑ALU標(biāo)志寄存器

AHAL

BHBLCHCL

DHDL

SP

BP

SI

DI通用寄存器地址加法器指令隊(duì)列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位LOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.2Intel8086微處理器寄存器組通用數(shù)據(jù)寄存器(4個(gè))AX,BX,CX,DX 它們可以分解為AL~DH8個(gè)8位寄存器使用指針及變址寄存器(4個(gè))SP堆棧指針寄存器(存放棧頂?shù)钠频刂罚〣P基址指針寄存器SI源變址寄存器DI目的變址寄存器段寄存器(4個(gè))CSDSSSES

8086/8088的寄存器組(16位)LOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.2Intel8086微處理器寄存器組指針寄存器SP、BP指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針寄存器,指示棧頂?shù)钠频刂稴P不能再用于其他目的,具有專用目的BP為基址指針寄存器,指示數(shù)據(jù)在堆棧段中的基地址SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址LOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.2Intel8086微處理器寄存器組堆棧的概念堆棧(Stack)是主存中一個(gè)特殊的區(qū)域它采用先進(jìn)后出FILO(FirstInLastOut)或后進(jìn)先出LIFO(LastInFirstOut)的原則進(jìn)行存取操作,而不是隨機(jī)存取操作方式。

堆棧通常由處理器自動(dòng)維護(hù)在8086中,由堆棧段寄存器SS和堆棧指針寄存器SP共同指示。LOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.2Intel8086微處理器寄存器組指令指針寄存器IP指令指針寄存器IP,總是指向BIU將要取的下一條指令代碼的偏移地址。它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址計(jì)算機(jī)通過(guò)CS:IP寄存器來(lái)控制指令序列的執(zhí)行流程IP寄存器是一個(gè)專用寄存器LOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.2Intel8086微處理器寄存器組控制寄存器(2個(gè))IP

指令指針寄存器(保存下一條即將執(zhí)行的指令的首地址)

PSW

程序狀態(tài)字寄存器OFDFIFTFSFZFAFPFCF

1514131211109876543210條件碼標(biāo)志OF

溢出標(biāo)志SF

符號(hào)標(biāo)志ZF

零標(biāo)志CF

進(jìn)位標(biāo)志AF

輔助進(jìn)位標(biāo)志PF

奇偶標(biāo)志控制標(biāo)志OV/

NV

NG/PLZR/NZCY/NCAC/NAPE/PODF

方向標(biāo)志IF

中斷標(biāo)志TF

陷阱標(biāo)志DN/

UP

EI/DILOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.2Intel8086微處理器寄存器組CFCarryFlag。它反映運(yùn)算中最高有效位向前有無(wú)進(jìn)位(針對(duì)加運(yùn)算)或借位(針對(duì)減運(yùn)算)。有進(jìn)位或借位時(shí),CF=1,否則CF=0。CF主要針對(duì)無(wú)符號(hào)運(yùn)算。OFOverflowFlag。它反映有符號(hào)數(shù)的運(yùn)算結(jié)果是否超出其所能表示的范圍;運(yùn)算結(jié)果溢出時(shí)OF=1,否則OF=0,注意,OF標(biāo)志主要針對(duì)有符號(hào)運(yùn)算。SFSignFlag。它反映運(yùn)算結(jié)果的最高有效位(MSB)為0、還是為1;對(duì)有符號(hào)運(yùn)算來(lái)說(shuō),它反映了運(yùn)算結(jié)果為正、還是為負(fù),即SF=MSB。ZFZeroFlag。它反映運(yùn)算結(jié)果是否為全0。若ZF=1,則表示運(yùn)算結(jié)果為全0(各位均為0);否則ZF=0。PFParityFlag。它反映運(yùn)算結(jié)果的低8位中1的個(gè)數(shù)是否為偶數(shù)。是則PF=1,否則PF=0。AFAuxiliaryFlag。它反映運(yùn)算中低四位向前有無(wú)進(jìn)位或借位。若AF=1,表示有進(jìn)位或借位;否則AF=0。程序狀態(tài)字(PSW)LOGO1.2

Intel8086微處理器簡(jiǎn)介1.2.2Intel8086微處理器寄存器組程序狀態(tài)字(PSW)DFDirectionFlag。若設(shè)置DF=0,則串操作后,源和目的操作數(shù)的地址均向增址方向調(diào)整;若設(shè)置DF=1,則向減址方向調(diào)整。IFInterruptEnableFlag。若設(shè)置IF=1,則允許CPU響應(yīng)可屏蔽中斷(開(kāi)中斷);若IF=0,則不允許CPU響應(yīng)可屏蔽中斷(關(guān)中斷)。TFTrapFlag。若設(shè)置TF=1,則將在CPU運(yùn)行中設(shè)置陷井,此時(shí),CPU每執(zhí)行一條指令就產(chǎn)生一個(gè)單步中斷;若TF=0,表示不設(shè)置陷井。起控制程序運(yùn)行方式的作用1.3存儲(chǔ)器1.3.1存儲(chǔ)單元的地址和內(nèi)容1.3.2堆棧1.3.3存儲(chǔ)器物理地址的形成1.3

存儲(chǔ)器1.3.1存儲(chǔ)單元的地址和內(nèi)容存儲(chǔ)器是用來(lái)存放程序、數(shù)據(jù)、中間結(jié)果和最終結(jié)果的記憶裝置。是計(jì)算機(jī)中最重要的設(shè)備。理解計(jì)算機(jī)的構(gòu)成(體系結(jié)構(gòu))的第一步是了解存放程序指令和數(shù)據(jù)值的基本存儲(chǔ)單元的相關(guān)概念。80X86存儲(chǔ)器陣列1.3

存儲(chǔ)器1.3.1存儲(chǔ)單元的地址和內(nèi)容1.3

存儲(chǔ)器1.3.1存儲(chǔ)單元的地址和內(nèi)容**********12340H12341H12343H12342H00000HFFFFFHFFFFEHPA********00001H存儲(chǔ)器以字節(jié)為單位存儲(chǔ)信息;每個(gè)字節(jié)有一個(gè)地址,從0編號(hào),順序加1;地址用無(wú)符號(hào)二進(jìn)制整數(shù)表示,用十六進(jìn)制書(shū)寫(xiě);一個(gè)字要占用存儲(chǔ)器相繼的兩個(gè)字節(jié),字單元地址用它的低地址來(lái)表示。低位字節(jié)存入計(jì)數(shù)小的地址(低地址),高位字節(jié)存入計(jì)數(shù)大的地址(高地址),這種數(shù)據(jù)存儲(chǔ)方式稱為小端方式(smallendian)。圖8086的存儲(chǔ)格式1.3

存儲(chǔ)器1.3.1存儲(chǔ)單元的地址和內(nèi)容1.3

存儲(chǔ)器1.3.1存儲(chǔ)單元的地址和內(nèi)容二進(jìn)制位:存儲(chǔ)一位二進(jìn)制數(shù):0或1。字節(jié):8個(gè)二進(jìn)制位,D7~D0。字:16位,2個(gè)字節(jié),D15~D0。雙字:32位,4個(gè)字節(jié),D31~D0。最低有效位LSB(LeastSignificantBit):指數(shù)據(jù)的最低位,即D0位;最高有效位MSB(MostSignificantBit):指數(shù)據(jù)的最高位,對(duì)應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位。數(shù)據(jù)信息的表達(dá)單位1.3

存儲(chǔ)器1.3.1存儲(chǔ)單元的地址和內(nèi)容數(shù)據(jù)在存儲(chǔ)器中的存取規(guī)則1.3

存儲(chǔ)器1.3.32堆棧堆棧操作:(1)PUSH操作數(shù)(2)POP操作數(shù).堆棧堆棧的作用:(1)調(diào)用函數(shù)(2)暫時(shí)存儲(chǔ)數(shù)據(jù)(3)保護(hù)寄存器數(shù)據(jù)1.3

存儲(chǔ)器1.3.3存儲(chǔ)器物理地址的形成將存儲(chǔ)器分成若干段:段起始地址的低4位為0,段的大小是64K范圍內(nèi)的任意連續(xù)字節(jié)時(shí),任一存儲(chǔ)單元的實(shí)際地址都可以用兩個(gè)16位的二進(jìn)制數(shù)表示。1.3

存儲(chǔ)器1.3.3存儲(chǔ)器物理地址的形成

物理地址:每個(gè)存儲(chǔ)單元的唯一的20位地址(PA)

段地址:段起始地址的高16位

偏移地址(EA):段內(nèi)相對(duì)于段起始地址的偏移值(16位)

**********12340H12341H12343H12342H0000H0001H0002H0003HFFFFH2233FHPA

0000段地址高16位

16位偏移地址+

20位物理地址EA=PA-

段首地址1.3

存儲(chǔ)器1.3.3存儲(chǔ)器物理地址的形成邏輯地址在程序中使用,由16位段基址和16位段內(nèi)偏移值所組成的地址.1234:00021234*16=500A:1234500A*16=邏輯地址與物理地址1.3

存儲(chǔ)器1.3.3存儲(chǔ)器物理地址的形成物理地址=段基址×16+段內(nèi)偏移地址。代碼段段寄存器CS數(shù)據(jù)段段寄存器DS堆棧段段寄存器SS附加段段寄存器ES段地址*10000B偏移地址物理地址150150

地址加法器19031.3

存儲(chǔ)器1.3.3存儲(chǔ)器物理地址的形成程序員如何分配各個(gè)邏輯段程序的指令序列必須安排在代碼段;程序使用的堆棧一定在堆棧段;程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤

其是串操作的目的區(qū)必須是附加段。數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中。

程序中如何指明數(shù)據(jù)所在的邏輯段呢?1.3

存儲(chǔ)器1.3.3存儲(chǔ)器物理地址的形成段超越的例子MOVAX,[2000H];AX←DS:[2000H],;從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)MOVAX,ES:[2000H];AX←DS:[2000H],;從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)沒(méi)有段超越的指令實(shí)例采用段超越前綴的指令實(shí)例1.3

存儲(chǔ)器1.3.3存儲(chǔ)器物理地址的形成段寄存器的使用規(guī)定(表2.1)訪問(wèn)存儲(chǔ)器的方式 默認(rèn)的段寄存器 可超越的段寄存器 偏移地址取指令 CS 無(wú) IP堆棧操作 SS 無(wú) SP一般數(shù)據(jù)訪問(wèn) DS CS、ES、SS 有效地址EA(下列除外)串操作的源操作數(shù) DS CS、ES、SS SI串操作的目的操作數(shù) ES 無(wú) DIBP基址的尋址方式 SS CS、DS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論