




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章 計算機基礎知識一、微機系統的基本組成1.微型計算機系統由硬件和軟件兩個部分組成。(1)硬件:馮諾依曼計算機體系結構的五個組成部分:運算器,控制器,存儲器,輸入設備,輸入設備。其特點是以運算器為中心。現代主流的微機是由馮諾依曼型改進的,以存儲器為中心。馮諾依曼計算機基本特點:核心思想:存儲程序;基本部件:五大部件;信息存儲方式:二進制;命令方式:操作碼(功能)+地址碼(地址),統稱機器指令;工作方式:按地址順序自動執行指令。(2)軟件:系統軟件:操作系統、數據庫、編譯軟件 應用軟件:文字處理、信息管理(MIS)、控制軟件二、微型計算機的系統結構大部分微機系統總線可分為3類:數據總線DB(
2、Data Bus),地址總線AB(Address Bus),控制總線CB(Control Bus)。總線特點:連接或擴展非常靈活,有更大的靈活性和更好的可擴展性。三、工作過程微機的工作過程就是程序的執行過程,即不斷地從存儲器中取出指令,然后執行指令的過程。 例:讓計算機實現以下任務:計算計算7+10=?程序:mov al,7Add al,10hlt指令的機器碼:10110000(OP)0000011100000100(OP)0000101011110100(OP)基本概念:1. 微處理器、微型計算機、微型計算機系統2. 常用的名詞術語和二進制編碼(1) 位、字節、字及字長(2)數字編碼(3)
3、字符編碼(4) 漢字編碼3. 指令、程序和指令系統習題:1.1,1.2,1.3,1.4,1.5第二章80868088微處理器一、80868088微處理器8086微處理器的內部結構:從功能上講,由兩個獨立邏輯單元組成,即執行單元EU和總線接口單元BIU。執行單元EU包括:4個通用寄存器(AX,BX,CX,DX,每個都是16位,又可拆位,拆成2個8位)、4個16位指針與變址寄存器(BP,SP,SI,DI)、16位標志寄存器FLAG(6個狀態標志和3個控制標志)、16位算術邏輯單元(ALU)、數據暫存寄存器;EU功能:從BIU取指令并執行指令;計算偏移量。總線接口單元BIU包括:4個16位段寄存器(
4、CS(代碼段寄存器)、DS(數據段寄存器)、SS(堆棧段寄存器)和ES(附加段寄存器))、16位指令指針寄存器IP(程序計數器)、20位地址加法器和總線控制電路、6字節(8088位4字節)的指令緩沖隊列;BIU功能:形成20位物理地址;從存儲器中取指令和數據并暫存到指令隊列寄存器中。3、執行部件EU和總線接口部件BIU的總體功能:提高了CPU的執行速度;降低對存儲器的存取速度的要求。4、地址加法器和段寄存器由IP提供或由EU按尋址方式計算出尋址單元的16位偏移地址(又稱為邏輯地址或簡稱為偏移量),將它與左移4位后的段寄存器的內容同時送到地址加法器進行相加,最后形成一個20位的實際地址(又稱為物
5、理地址),以對應存儲單元尋址。要形成某指令碼的物理地址(即實際地址),就將IP的值與代碼段寄存器CS(Code Segment)左移4位后的內容相加。【例假設CS4000H,IP0300H,則指令的物理地址PA4000H×10H0300H40300H。邏輯地址=4000H: 0300H。“段加偏移”的尋址機制:物理地址=段基地址(又稱段起始地址=段地址×10H)+偏移地址邏輯地址:其表達形式為“段地址:段內偏移地址”。二、8086/8088CPU基本執行環境指令指針(IP)寄存器包含下一條要執行的指令在當前碼段中的偏移。 80868088的16位標志寄存器F只用了其中的9位
6、作標志位,即6個狀態標志位,3個控制標志位。6個狀態標志位:CF(Carry Flag)進位標志:進位或借位時,則CF為1;否則為0。PF(Parity Flag)奇偶性標志:含有偶數個“1”時,則PF為1;否則為0。AF(Auxiliary Carry Flag)輔助進位標志:ZF(Zero Flag)零標志:運算結果為零,ZF為1;否則為0。SF(Sign Flag)符號標志:OF(Overflow Flag)溢出標志:3個控制標志位(程序設置(1),清除(0):DF(Direction Flag)方向標志IF(Interrupt Enable Flag)中斷允許標志TF(Trap Fla
7、g)跟蹤(陷阱)標志存儲器組織:1M字節存儲器以64K為范圍分為若干段。在尋址一個具體物理單元時,必須要由一個基地址再加上由SP或IP或BP或SI或DI等可由CPU處理的16位偏移量來形成實際的20位物理地址。三、總線周期1、時鐘周期:時鐘脈沖信號的一個循環時間叫一個時鐘周期,又稱為一個“T”狀態,是微處理器工作的最小時間單位2、總線周期(機器時間):完成一次對存儲器或I/O端口的操作所需要的時間。3、指令周期:執行一條指令所需要的時間。1個最基本的總線周期由4個時鐘周期組成,4個時鐘周期又稱為4個狀態,。四、8086/8088引腳地址數據總線AD15AD0:分時復用地址/狀態總線:A19/S
8、6A16/S3:控制總線:BHE/S7:表示高8位數據有效,T1輸出。RD:存儲器或I/O口讀信號,輸出,低電平有效,T2T3有效。READY:準備就緒信號,輸入,高電平有效。READY1時,表示CPU訪問的存儲器或I/O端口已準備好傳送數據,馬上可以進行讀寫操作。TEST:測試信號,輸入,低電平有效。INTR:可屏蔽中斷請求信號,輸入,電平觸發,高電平有效。 CPU每執行完一條指令,即檢查INTR,為“1”表示有中斷清求,為“0”,則沒有。是否響應受標志寄存器中IF的控制 NMI:不可屏蔽中斷請求信號,輸入,上升沿觸發。RESET:復位信號,輸入,高電平有效。CPU復位后,從FFFF0H單元
9、開始讀取指令。電源線和地線: VCC,GND 五、8086系統的最小/最大工作方式最小工作方式: INTA:中斷響應信號,輸出,低電平有效。 ALE:地址鎖存允許信號,輸出,高電平有效。 DEN:數據允許信號,三態輸出,低電平有效。 DT/R:數據發送/接收控制信號,三態輸出。 M/IO:存儲器或I/O端口選擇信號,三態輸出。M/IO1,表示當前CPU正在訪問存儲器;M/IO0,表示當前CPU正在訪問I/O端口。 WR:寫信號,三態、輸出。當WR0低電平有效時,表示當前CPU正在對存儲器或I/O端口進行寫操作。 HOLD:總線保持請求信號,輸入,高電平有效。 HLDA:總線請求響應信號,輸出,
10、高電平有效。最大工作方式:在最大方式系統中,外加有8288總線控制器,一般包含2個或多個處理器。8282:地址鎖存器,8286:數據收發器第三章 8086指令系統一、計算機語言1.機器語言:面向機器,0和1表示機器是否可接受并執行指令。2匯編語言:面向人,符號表示,必須翻譯才能執行。匯編語言指令的格式:一般格式:操作碼 操作數具體格式:標號:操作碼(空格分隔符)目的操作數(存放結果),(逗號分隔符)源操作數;注釋一條指令可以無操作數,必須有操作碼,不同的機器,操作數個數不同。3.高級語言二、指令尋找操作數的尋址方式操作數通常保存在:(1)指令中(2)CPU內部寄存器中()內存單元中()端口中;
11、8086/8088CPU與數據有關尋址方式:1. 立即尋址 2.寄存器尋址 3.直接尋址 4.寄存器間接尋址5.變址尋址6.基址尋址7.基址加變址尋址9.相對基址變址尋址10. I/O端口尋址11. 數據串尋址例:設DS1200H,BX05A6H,SS5000H,BP40A0H,SI2000H,DI3000H,位移量DISP1618H,試判斷下列指令的尋址方式,并求出在各種尋址方式下,這些寄存器與位移量所產生的有效地址EA和實際地址(物理地址)PA。說明指令執行的結果。 MOV AX,0618H這是一條直接尋址方式的指令。EA0618HPA12000H+0618H12618H該指令執行的結果是
12、將數據段的實際地址為12618H和12619H兩單元中的內容取出送AX。 MOV AX,BX這是一條以數據段基址寄存器BX間接尋址的指令。EA05A6HPA12000H+05A6H125A6H該指令執行的結果是將數據段的125A6H和125A7H兩單元的字內容取出送AX。 MOV AX,BP這是一條以堆棧段基址寄存器BP間接尋址的指令。由于尋址時用上了BP寄存器,則操作數所默認的段寄存器就是SS。EA40A0HPA50000H+40A0H540A0H該指令執行的結果是將堆棧段的540A0H和540A1H兩單元的字內容取出送AX。 MOV AX,DI這是一條變址尋址的指令。EA3000HPA12
13、000H+3000H15000H該指令執行的結果是將數據段的15000H和15001H兩單元的字內容取出送AX。 MOV AX,BX+DI這是一條基址加變址尋址的指令。EA05A6H+3000H35A6HPA12000H+35A6H155A6H該指令執行的結果是將數據段的155A6H和155A7H兩單元的字內容取出送AX。 MOV AX,BP+SI+DISP這是一條帶位移量的基址加變址尋址的指令,又叫相對基址加變址尋址的指令,且操作數的默認段為SS。EA40A0H+2000H+1618H76B8HPA50000H+76B8H576B8H該指令執行的結果是將堆棧段的576B8H和576B9H兩單
14、元的字內容取出送AX。三、指令的尋址=>CS:IP(不用表示,固定的)轉移尋址:用于控制轉移類指令。實質:控制轉移類指令通過改變IP和CS值,從新位置開始執行指令。轉移尋址分成2種類型:段內轉移和段間轉移。條件轉移指令只允許實現段內轉移,而且是段內短轉移,由指令中直接給出8位地址位移量無條件轉移和調用指令又可分為段內短轉移、段內直接轉移、段內間接轉移、段間直接轉移和段間間接轉移等5種不同的尋址方式。段間轉移=遠轉移。四、指令分類8086/8088的指令按功能可分為6類:數據傳送、算術運算、邏輯運算、串操作、程序控制和CPU控制。1.數據傳送類指令數據傳送類指令可完成寄存器與寄存器之間、寄
15、存器與存儲器之間、寄存器與I/O端口之間的字節或字傳送,共同特點是不影響標志寄存器的內容,分成4種類型。(1通用數據傳送指令(1)MOV d,s;ds,即將由源s指定的源操作數送到目標d源操作數(s)可以是8/16位寄存器、存儲器的某個字節/字或者是8/16位立即數;目標操作數(d)不允許為立即數;兩者不能同時為存儲器操作數。基本傳送指令MOV d,s的類型有以下7種。 MOV mem/reg1,mem/reg2由mem/reg2所指定的存儲單元或寄存器中的8位數據或16位數據傳送到由mem/reg1所指定的存儲單元或寄存器中,但不允許從存儲器傳送到存儲器。 MOV mem/reg,data
16、將8位或16位立即數data傳送到由mem/reg所指定的存儲單元或寄存器中。 MOV reg,data 將8位或16位立即數data傳送到由reg所指定的寄存器中。 MOV ac,mem 將存儲單元中的8位或16位數據傳送到累加器ac中。 MOV mem,ac 將累加器AL(8位)或AX(16位)中的數據傳送到由mem所指定的存儲單元中。使用MOV指令時要注意的問題:CS不能做目的操作數不能直接從存儲器到存儲器之間數據傳送2條偽指令:WORD PTR表示字數據類型BYTE PTR表示字節數據類型(2)PUSH和POPPUSH s:將源操作數(16位)壓入堆棧POP d:將堆棧中當前棧頂兩相鄰
17、單元的數據字彈出到d 壓棧指令PUSH AX:將AX(16位)中的數據壓入棧,AX是源操作數,棧頂是目的操作數,由(SS:SP)指向。出棧指令POP AX:將棧頂信息彈出到AX中,AX是目的操作數,棧頂是源操作數,由(SS:SP)指向。設當前CS1000H,IP0020H,SS1600H,SP004CH,則該指令執行時,將當前棧頂兩相鄰單元1604CH與1604DH中的數據字彈出并傳送到CX中,同時修改堆棧指針,SP+2SP,使之指向新棧頂1604EH。堆棧是內存中開辟的一個段,存放需要保護的信息(數據、地址)。堆棧操作時應遵循的5點原則:堆棧的存取操作每次必須是一個字(即2個字節)。執行壓棧
18、指令時,總是從高位地址向低位地址存放數據,而不象內存中的其他段,總是從低地址向高地址存放;執行出棧指令時,從堆棧中彈出數據則正好相反。堆棧段在內存中的物理地址由SS和SP或SS和BP決定,其中,SS是堆棧段寄存器,它是棧區的最低地址,稱為堆棧的段地址;SP是進棧或出棧指令隱含的堆棧地址指針,它的起始值是堆棧應達到的最大偏移量,即指向棧頂地址。堆棧段的范圍是SS×16至SS×16+SP的起始值。每執行一次壓棧指令,則SP-2,推入堆棧的數據放在棧頂;而每執行一次彈出指令時,則SP+2。BP寄存器用于對堆棧中的數據塊進行隨機存取,例如,MOV AX,BPSI指令執行后,將把偏移
19、量為BP+SI的存儲單元的內容裝入AX。堆棧指令中的操作數只能是寄存器或存儲器操作數,而不能是立即數。對CS段寄存器可以使用壓棧指令PUSH CX,但卻不能使用POP CS這種無效指令。(3)XCHG d,s該指令功能是將源操作數與目標操作數(字節或字)相互對應交換位置。交換可以在通用寄存器與累加器之間、通用寄存器之間、通用寄存器與存儲器之間進行。但不能在兩個存儲單元之間交換,段寄存器與IP也不能作為一個源或目的操作數。(4)XLAT這是一條用于實現字節翻譯功能的指令,又稱為代碼轉換指令。具體地說,它可以將AL寄存器中設定的一個字節數值變換為內存一段連續表格中的另一個相應的代碼,以實現編碼制的
20、轉換。2)目標地址傳送指令專用于傳送地址碼的指令,可傳送存儲器的邏輯地址(即存儲器操作數的段地址或偏移地址)至指定寄存器中,共包含3條指令:LEA、LDS和LES。(1) LEA d,s取有效地址指令。功能:把用于指定源操作數(它必須是存儲器操作數)的16位偏移地址(即有效地址)傳送到一個指定的16位通用寄存器中。(2) LDS d,s取某變量的32位地址指針指令。功能:從由指令的源s所指定的存儲單元開始,由4個連續存儲單元中取出某變量的地址指針(共4個字節),將其前兩個字節(即變量的偏移地址)傳送到由指令的目標d所指定的某16位通用寄存器,后兩字節(即變量的段地址)傳送到DS段寄存器中。 (
21、3) LES d,s這條指令與LDS d,s指令的操作基本相同,其區別僅在于將把由源所指定的某變量的地址指針中后2個字節(段地址)傳送到ES段寄存器,而不是DS段寄存器。3)標志位傳送指令用于傳送標志位,共有4條。(1) LAHF指令功能:將標志寄存器F的低字節(共包含5個狀態標志位)傳送到AH寄存器中,雙操作數,固定尋址,所以被隱藏。(2)SAHF指令功能:將AH寄存器內容傳送到標志寄存器F的低字節。(3)PUSHF指令功能:將16位標志寄存器F內容入棧保護。其操作過程與前述的PUSH指令類似。(4)POPF指令功能:將當前棧頂和次棧頂中的數據字彈出送回到標志寄存器F中。4)I/O數據傳送指
22、令(1)IN累加器,端口號端口號可以用8位立即數直接給出;也可以將端口號事先安排在DX寄存器中,間接尋址16位長端口號(可尋址的端口號為065535)。IN指令是將指定端口中的內容輸入到累加器AL/AX中。(2)OUT 端口號,累加器與IN指令相同,端口號可以由8位立即數給出,也可由DX寄存器間接給出。OUT指令是將累加器AL/AX中的內容輸出到指定的端口。 OUT PORT,AL ;端口PORTAL,即將AL中的字節內容輸出到由PORT直接指定的端口。PORT:符號地址,表示端口直接地址。 OUT DX,AX ;端口(DX)AX,即將AX中的字內容輸出到由DX所指定的端口。I/O指令只能用累
23、加器作為執行I/O數據傳送的機構,直接尋址范圍為0255,尋址大于255的端口地址時,必須用間接尋址的I/O指令。例如,在IBM PC/XT微機系統中,既用了0255范圍的端口地址,也用了25565535范圍的端口地址。2.算術運算指令1)加法指令(1) ADD d,s ;dd+s 指令功能:將源操作數與目標操作數相加,結果保留在目標中。并根據結果置標志位。源操作數可以是8/16位通用寄存器、存儲器操作數或立即數;目標操作數不允許是立即數,其他同源操作數。且不允許兩者同時為存儲器操作數。(2)ADC d,s;dd+s+CF 帶進位加法(ADC)指令的操作過程與ADD指令基本相同,惟一的不同是進
24、位標志位CF的原狀態也將一起參與加法運算,待運算結束,CF將重新根據結果置成新的狀態。ADC指令一般用于16位以上的多字節數字相加的軟件中。(3)INC d;dd+1指令功能:將目標操作數當作無符號數,完成加1操作后,結果仍保留在目標中。 目標操作數可以是8/16位通用寄存器或存儲器操作數,但不允許是立即數。2)減法指令(1)SUB d,s;dd-s指令功能:將目標操作數減去源操作數,其結果送回目標,并根據運算結果置標志位。(2)SBB d,s;dd-s-CF本指令與SUB指令的功能、執行過程基本相同,唯一不同的是完成減法運算時還要再減去進位標志CF的原狀態。運算結束時,CF將被置成新狀態。(
25、3)DEC d; dd-1減1指令功能:將目標操作數的內容減1后送回目標。目標操作數可以是8/16位通用寄存器和存儲器操作數,但不允許是立即數。(4)NEG d; dd+1NEG是求補碼的指令,簡稱求補指令。指令功能:將目標操作數取負后送回目標。(5)CMP d,s;d-s,只置標志位指令功能:將目標操作數與源操作數相減但不送回結果,只根據運算結果置標志位。不允許兩個操作數同時為存儲器操作數,也不允許做段寄存器比較。3)乘法指令乘法指令用來實現兩個二進制操作數的相乘運算,包括兩條指令:無符號數乘法指令MUL和有符號數乘法指令IMUL。(1) MUL sMUL s是無符號乘法指令,被乘數(目的操
26、作數)隱含在累加器AL/AX中;由s指定的源操作數作乘數,相乘所得雙倍位長的積,分別存放到DX與AX中。(2)IMUL s有符號乘法指令4)除法指令除數、商:8位,被除數可以是16位,目的操作數被隱含。(1) DIV sDIV s 被除數隱含在累加器AX(字節除)或DX、AX(字除)中。指令中由s給出的源操作數作除數。字節除法,商存于AL,余數存于AH。字除法,商存于AX,余數存于DX。(2) IDIV s該指令完成將兩個帶符號的二進制數相除的功能。(3) CBW和CWD5)十進制調整指令(1) DAADAA是加法的十進制調整指令,它必須跟在ADD或ADC指令之后使用。功能:將存于AL(目的操
27、作數)寄存器中的2位BCD碼加法運算的結果調整為2位壓縮型十進制數,仍保留在AL中。AL寄存器中的運算結果在出現非法碼(1010B1111B)或本位向高位(指BCD碼)有進位(由AF=1或CF=1表示低位向高位或高位向更高位有進位)時,由DAA自動進行加6調整。AF標志寄存器可知進位。(2) DAS減法的十進制調整指令,減6調整(3) AAA加法的ASCII碼調整指令(4) AAS減法的ASCII碼調整指令(5) AAM乘法的ASCII碼調整指令(6)AAD除法的ASCII碼調整指令。3.邏輯運算和移位循環類指令:分為3種類型:邏輯運算;移位;循環1)邏輯運算指令(1)AND d,s;dds,
28、按位“與”操作,有一個是0,結果是0。(2) OR d,s;dds,按位“或”操作,有一個是1,結果是1。(3) XOR d,s;dd s,按位“異或”操作,不同,相同0。(4) NOT d;d d ,按位取反操作。 (5) TEST d,s;ds,按位“與”操作,不送回結果,測試指令,影響標志位。2)移位指令與循環移位指令移位指令分為算術移位和邏輯移位。循環移位分為不帶進位位(小循環)與帶進位位循環移位(大循環)4.串操作類指令(1)指令使用規則::串操作類指令是惟一地在存儲器內的源與目標之間進行操作的指令,即源操作數與目標操作數都可以是存儲器操作數。(2)源操作數地址:DS(段寄存器)、I
29、S(源變址寄存器)(3)目標操作數地址:ES(段寄存器)、DI(目標變址寄存器)(4)串長度存放在CS寄存器中(5)采用隱含尋址方式。(6)地址變化方向方向標志位DF,DF=0,用指令CLD實現,地址指針增1或2;DF=1,用指令STD實現,地址指針減1或2。(7)串指令功能:執行指令規定操作,然后SI和DI自動修改+-1(字符串)或+-2(字)。(8)重復指令功能:添加重復前綴REP等,指令實現自動循環,自動修改循環計數計功能,并判斷0(9)循環計數計使用CX5種基本的串操作指令:1) MOVS目標串,源串2)CMPS目標串,源串3)SCAS目標串4) LODS源串5) STOS目標串5.程
30、序(轉移)控制指令1)無條件轉移指令(1)JMP 目標標號根據目標地址的位置與尋址方式的不同,JMP指令有4種基本格式。 段內直接轉移操作數:目標地址的偏移量,偏移量是8位(短轉移)或16位(近轉移)的帶符號數。目標標號偏移地址=(IP)+指令中位移量有條件轉移只能用短轉移。段內短轉移:位移量1個字節段內近轉移:位移量2個字節段內間接轉移操作數:目標地址的偏移地址,寄存器間接尋址目標標號偏移地址=操作數-(IP)目標段=源段=CSSHORT段內短轉移NIAR段內近轉移段間直接轉移新的段地址:CS,新的偏移地址:IP,操作數:目標地址的邏輯地址。目標地址的段地址和偏移地址存放于存儲器的4個連續地
31、址中低字位:IP,高字位:CS,操作數是雙字的存儲器地址用DWORD PTR表示。(2) CALL 過程名無條件調用過程指令。“過程”即“子程序”。子程序名即子程序入口地址,子程序段第一條指令的地址,用符號表示。CALL指令將迫使CPU暫停執行調用程序(或稱為主程序)后續的下一條指令(即斷點,用堆棧保存),轉去執行指定的過程;待過程執行完畢,再用返回指令RET將程序返回到斷點處繼續執行。RET:識別程序終點。CALL指令4種不同的尋址方式和4種基本格式: CALL N_PROCN_PROC是一個近過程名,采用段內直接尋址方式。CALL BX段內間接尋址的調用過程指令CALL F_PROCF_P
32、ROC是一個遠過程名,它可以采用段間直接和段間間接兩種尋址方式來實現調用過程。RET 彈出值:從過程返回(RET)指令應安排在過程的出口,即過程的最后一條指令處。2)條件轉移指令條件轉移指令共有18條,標志寄存器的標志位(9個,用6個狀態)作為轉移的條件。所有的條件轉移指令都是短轉移,目標地址(8位)的字節距離在-128+127范圍以內。一個標志位的狀態或幾個標志的狀態組合作為測試的條件。另外的一種替換形式,功能等效。3)循環控制指令:CX中存放著循環次數,短轉移(1)LOOP 目標標號(2)LOOPE/LOOPZ 目標標號(3)LOOPNE/LOOPNZ 目標標號(4)JCXZ 目標標號6.
33、中斷指令,中斷指令只有3條。 (1)INT 中斷類型,8086/8088系統中允許有256種中斷類型(0255)(2)INTO (3)IRET7.處理器控制類指令,處理器控制指令只完成對CPU的簡單控制功能。1) 對標志位操作指令(1) CLC、STC、CMC指令用來對進位標志CF清“0”、置 “1”和取反操作。2) 同步控制指令:多處理器系統(1) ESC外部操作碼,源操作數(2) WAIT (3) LOCK3)其他控制指令 (1) HLT 暫停指令,當CPU發生復位或來自外部的中斷時,CPU脫離暫停狀態。(2) NOP 空操作指令,占用3個時鐘周期的時間(IP+1),常用來作延時。五、80
34、86編程基礎匯編語言是用指令的助記符、符號地址、標號等書寫程序的語言,簡稱符號語言。1.匯編語言格式(1)指令分類匯編語言有3種基本語句:指令語句、偽指令語句、宏指令語句 。指令語句是一種執行性語句,它在匯編時,匯編程序將為之產生一一對應的機器目標代碼。偽指令語句是一種說明性語句,它在匯編時只為匯編程序提供進行匯編所需要的有關信息,如定義符號,分配存儲單元,初始化存儲器等,而本身并不代表生成目標代碼。不執行,翻譯時用。宏指令語句是以某個宏名字定義的一段指令序列。宏指令可以有多段,子程序有一段。(2)語句格式1)指令語句格式標號:前綴 指令助記符 操作數表 ;注釋2)偽指令語句的格式 名字偽指令
35、參數表;注釋(3)匯編語言的語法段定義偽指令指示匯編程序應如何按段來組織程序和使用存儲器。匯編程序3種設計結構:順序結構、分支結構、循環結構。2.匯編語言編程運行環境第五章 存儲器一、存儲器的結構1.基本概念 位 (bit):信息量單位,每一個0或1就叫做1位信息。 字節 (byte):存儲量單位,8位二進制代碼作為一個字節。 字 (word):2個字節組成一個字,標識16位數據的長度。 字長:計算機一次處理數據的位數(存儲器,寄存器)。字長是隨計算機發展變化的(8086型字長=16位)。地址:每個單元的編號,各存儲單元的地址與該地址中存放的內容完全不同。物理地址(20位,220=1024K=
36、1M)=段地址*10H+偏移地址邏輯地址(16位,216=64K)=段地址(16位):偏移地址(16位) 存儲單元:每個單元存儲8位二進制信息,即字長為8位。字地址:低地址單元的地址作為低地址,偶數。段:分段方法:段起始地址(段基址),段長簡化問題。2.8086存儲器管理方式1)存儲器信息分類管理:程序信息,數據信息,保護(堆棧)信息。2)存儲器空間分段使用:將內存空間分成若干個邏輯段使用,每個邏輯段存放一種信息,每個段稱邏輯段,當前正在使用的邏輯段稱作當前段。邏輯信息按照存放信息的類別分為:代碼(程序)段,堆棧段,數據段,附加段。邏輯段:邏輯段長度=后起始地址-前起始地址,一類信息可以使用1
37、個至多個邏輯段。地址指針:程序指針:CS:IP,堆棧指針:SS:SP,數據指針:DS或ES:EA(有效地址)段地址來源于4個段寄存器,偏移地址來源于IP、SP、EA(由BP、SI、DI計算)。段地址默認時,偏移地址稱作邏輯地址。3.8086存儲器堆棧技術1.堆棧的定義:在存儲器設置專用區(堆棧段),臨時存放需要保護的信息。2.堆棧原則:按字堆棧,后進先出;從底(高地址)向頂(低地址)堆放堆棧指針SS:SP(棧頂)。3)堆棧設置:SS賦值:定段位置;SP賦值:定段長度。SP-2(內部自動,SP值不變)。物理地址=段地址(SS)*10H+偏移地址(SP)4)堆棧使用自動或用指令使用堆棧。SP-2,
38、進棧;SP+2,出棧;自動實現,程序里不寫。二、計算機存儲系統概述1計算機的存儲系統1)主存和輔存2)存儲系統2.內存(半導體存儲器)的概述1)主存功能:存放當前運行的程序和數據,供CPU直接訪問;存放多機共享的數據,兼顧實現多機通信。2)主存連接:主存<>系統總線<>CPU系統總線:AB:地址來自CPU的AR寄存器;CB:包括IO/M、WE/RD、Ready等引腳;DB:數據通過CPU的DR寄存器中轉。3)主存分類RAM:易失性存儲器,如U盤;ROM:非易失性存儲器;MOS RAM分靜態(Static)和動態(Dynamic)RAM兩種。雙極性RAM的特點:存取速度快
39、。靜態MOS RAM 的特點:價格便宜,功耗低。內存:MOS4)內存(半導體存儲器)組成和結構地址譯碼方式:單譯碼方式、雙譯碼方式二、計算機的內存1.靜態RAM簡稱SRAM,基本存儲電路:RS觸發器。Intel 6116:雙列直插式,24引腳,存儲容量2K*8位2.動態RAM簡稱DRAMIntel 2116:16K*1位,由于受封裝引線的限制,只有7條地址輸入線,1條數據線;采用地址線分時復用的技術;控制信號:CAS列,RAS行;工作方式:寫操作:電容充電;讀操作:破壞性讀出,重寫刷新;定時刷新:保持電容電平。特點:定時刷新、分時復用。3. EPROM芯片Intel 2716容量為2K
40、5;8位,采用NMOS工藝和雙列直插式封裝三、存儲器的擴充和與CPU連接1、存儲器的擴充位數的擴充:用固定容量、位數一定的芯片擴充成固定容量、位數較多的存儲器。如:需要2KX8位的存儲器:2KX1需8片; 需要2KX8 位的存儲器:2KX4需2片; 需要2KX16位的存儲器:2KX1需16片; 需要2KX16位的存儲器:2KX4需4片。字擴展(地址擴展):用一定容量、位數固定的存儲芯片擴充成較大容量位數固定的存儲器。如:需要64KX8位的存儲器:16KX8需4片;需要64KX8位的存儲器:2KX8需32片。字、位擴展:用固定容量、固定位數的芯片擴展成較大容量、較大位數的存儲器。如:用16KX4
41、 的存儲芯片擴展成64KX8的存儲器: 位擴展:需2片; 字擴展:需4片; 共需芯片:2X4=8片。2、存儲器芯片片選信號CS的處理芯片介紹:Intel 74LS138和61163-8譯碼器74LS138存儲芯片Intel6116(2KX8)片選信號的處理方法全譯碼法:片內尋址未用的全部高位地址線都參加譯碼,譯碼輸出作為片選信號。部分譯碼:用片內尋址外的高位地址的一部分譯碼產生片選信號。線選法:高位地址線不經過譯碼,直接(或經反相器)分別接各存儲器芯片的片選端來區別各芯片的地址。例:用Intel 6116芯片組成8KB RAM,設CPU為8086(設地址線為20根),譯碼器采用74LS138,
42、問題: 1、需要幾片6116? 2、地址線和數據線各為多少根? 3、每一片的地址范圍是多少?如何確定?是否有重疊區? 4、如何連線?(包括地址線、數據線和狀態線)全譯碼分析:6116為2KX8芯片,需組成8KX8的存儲器,只需進行字擴展,需4片。要求地址范圍是00000H01FFFH,4片的地址范圍分別為:第一片:00000H 007FFH;第二片:00800H 00FFFH;第三片:01000H 017FFH;第四片:01800H 01FFFH分析結果:A0A10作為芯片片內尋址;A11A13作為74LS的A、B、C端;A14A19組合產生G1、G2A、G2B 部分譯碼線性譯碼第六章 計算機
43、接口技術一、計算機的接口1.接口的基本結構2.接口的電路信號接口對外設連接的信號要求1)數據信號(1)數字量:通常為8位二進制數或ASCII代碼。(2)模擬量:計算機檢測、數據采集或控制的大量的現場信息等(3) 開關量:一些“0”或“1”兩個狀態的量2)狀態信號狀態信息是反映外設當前所處工作狀態的信息,以作為CPU與外設間可靠交換數據的條件。3)控制信號:用于控制外設的啟動或停止。二、數據傳輸方式1.無條件的程序傳送方式定義:用程序定時用IN或OUT指令進行信息的輸入或輸出。條件:外設隨時都處于數據(設備)準備好狀態,無須檢測器狀態。2.程序查詢傳送方式1)查詢輸入(1)接口電路(2)程序流程
44、(3)程序編碼POLL:IN AL,STATUS_PORT ;讀狀態端口的信息 TEST AL,80 ;設“準備就緒”(READY)信息在D7位 JE POLL ;未“準備就緒”,則循環再查 IN AL,DATA_PORT ;已“準備就緒”(READY=1),則讀入數據 說明:POLL:標號;IN:操作碼;AL:累加器;STATUS_PORT:符號地址;TEST:檢測;JE POLL:條件轉移,結果是0則返回;2)查詢輸出(1)接口電路 (2)程序流程(3)查詢部分的程序為:POLL: INAL,STATUS_PORT;從狀態端口輸入狀態信息TESTAL,80H;檢查BUSY位JNEPOLL;
45、BUSY則循環等待MOVAL,STORE;否則,從緩沖區取數據OUTDATA_PORT,AL;從數據端口輸出其中,STATUS_PORT是狀態端口的符號地址;DATA_PORT是數據端口的符號地址;STORE是存放數據單元的地址偏移量。 3.中斷傳送方式所謂中斷是外設或其他中斷源中止CPU當前正在執行的程序,而轉向為該外設服務(如完成它與CPU之間傳送一個數據)的程序,一旦服務結束,又返回原程序繼續工作。中斷傳送方式的好處是:大大提高了CPU的工作效率。4、DMA傳送方式(Direct Memory Access)方式第七章 可編程接口芯片技術一、可編程并行接口芯片8255Av 8255A是I
46、ntel公司生產的可編程并行I/O接口芯片,有3個8位并行I/O口,共24位,其各端口工作方式由軟件編程設定。v 8255A是應用最廣泛的可編程并行接口芯片,使用方便,通用性強。1. 8255A的內部結構及引腳功能8255A是40個引腳雙列直播插式芯片,有三個可存取數據的端口,分別是A口、B口、C口,可以通過編程來設置其工作方式;有一個控制端口,可以通控制端口設置8255A 數據端口的工作方式。2. 8255A的工作方式v A口可工作于方式0、方式1、方式2v B口可工作于方式0、方式1v C口只能工作于方式01)方式0基本輸入輸出 在方式0下,每一個端口都作為基本的輸入或輸出口,端口C口的高
47、4位和低4位以及端口A口、端口B都可獨立地設置為輸入口或輸出口。2)方式1單向選通輸入輸出 三個數據端口分為A、B兩組,分別稱為A組控制和B組控制。端口A和端口B仍作為數據的輸入或輸出口,端口C作為聯絡控制信號,被分成兩部分,一部分作為端口A和端口B的聯絡信號,另一部分仍可作為基本的輸入輸出口。3)方式2雙向選通輸入輸出 端口A的方式2可使8255A與外設進行雙向通信,既能發送數據,又能接收數據。可采用查詢方式和中斷方式進行傳輸。3.8255A的編程1).8255A的控制字(1)方式選擇控制字(2)端口C置位/復位控制字【例】設8255A的A口和B口工作在方式0,A口作為輸入端口,接有8個開關
48、;B口為輸出端口,接有8個發光二極管。系統硬件電路如圖所示,不斷掃描開關Ki,當開關K0閉合時,點亮LED0、LED2、LED4、LED6,其它LED暗;當開關K1閉合時,點亮LED1、LED3、LED5、LED7,其它LED暗;當開關K0和K1同時閉合時退出。設8255A端口A、端口B、端口C及控制端口的地址分別為200H203H。試編寫程序。解:首先確定工作方式控制字。根據題意,A口為輸入端口,B口輸出端口,均工作在方式0下,端口C沒使用,設沒有用到的控制字中對應位設置為0,所以8255A的控制字為:CODE SEGMENT ASSUME CS:CODE START:MOVAL,90H ;
49、 8255初始化 MOVDX,203H AGAIN:MOVDX,200H IN AL,DX TEST AL,03H ; 檢測K0 K1 JZ EXIT TEST AL,01H ;檢測K0 JZ DISP_0TEST AL,02H ;檢測K1 JZ DISP_1 JMP AGAINDIAP_0:MOV AL,55H ;偶位上LED亮,奇位上LED暗 MOV DX,201H OUT DX,AL JMP AGAINDIAP_1:MOV AL,0AAH ;奇位上LED亮,偶位上LED暗 MOV DX,201H OUT DX,AL JMP AGAIN EXIT: MOV AH,4CH INT 21H C
50、ODEENDS END START小結:1.8255A支持哪幾種傳送方式?答:支持無條件的程序傳送方式、程序查詢傳送方式、中斷傳送方式3種傳送方式。2.支持多少條單元、地址、地址線?答:4條單元,2條地址,2條地址線。3.4個單元地址值如何確定?答:通過2條地址A0、A1確定。4.假設A、B、C都工作在方式0,8255接一個外設,能否實現查詢傳遞,原因是什么,怎么實現?答:方式0:基本的輸入輸出工作方式 方式0有以下特點:任何一個端口都可用作輸入或輸出。由A口、B口、C口高4位與C口低4位4組組合成不同的輸入/輸出組態。方式0只能用無條件傳送或按查詢方式傳送。所以,能實現,將A口與B口作為數據
51、端口,將C口的4位規定為控制信號輸出口,另外4位規定為狀態輸入口,用C口配合A口與B口工作。二、可編程定時器/計數器8253v 8253是Intel公司生產的通用可編程定時/計數器,定時時間與計數次數由用戶事先設定。v 8253的讀/寫操作對系統時鐘沒有特殊的要求,可應用于由任何一種微處理器組成的系統中,可作為可編程的方波頻率發生器、分頻器、實時時鐘、事件計數器和單脈沖發生器等。1.8253的內部結構及引腳功能2)8253的引腳功能 8253采用雙列直插式封裝,有24個引腳。3)8253的工作方式v 8253的每個計數器都有6種工作方式:方式0方式5。v 這6種工作方式的不同點是:Ø
52、 輸出波形不同Ø 啟動計數器的觸發方式不同Ø 計數過程中GATE信號對計數過程的影響不同4)8253的初始化(1) 8253方式控制字(2)8253初始化編程8253初始化編程步驟是:Ø 先寫控制字到8253的控制端口。Ø 再寫計數器初值到相應的計數器端口。例:在8086系統中,設8253的計數器0工作在方式2,二進制計數,計數初值為2000,8253的計數器1工作在方式3,BCD碼計數,計數初值為100,8253端口地址為40H43H。試編寫初始化程序。AL,34H;方式控制字00110100B=34H OUT 63H,AL;將控制字送入8253A控制
53、端口63H MOV AX,2000;初值送AX寄存器 OUT 60H,AL;將初值的低8位輸出計數通道0端口60H MOV AL,AH;初值的高8位送AL寄存器 OUT 60H,AL;將將初值的高8位輸出計數通道0端口60H 8253計數器1的初始化程序如下: MOV AL,57H;方式控制字01010111B=57H OUT 63H,AL;將控制字送入8253A控制端口63H MOV AL,100H;初值100送AL寄存器,因為BCD碼計數,要送100H OUT 61H,AL;將初值的低8位輸出計數通道1端口61H【例】硬件圖如圖所示,。要求將一輸入頻率為2MHz信號,利用8253做一個秒信號發生器,其輸出接一發光二極管,以0.5秒點亮,0.5秒熄滅的方式閃爍指示。設8253的通道地址為400H403H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國腿外分訓練器項目創業計劃書
- 中國虹鱒魚養殖項目創業計劃書
- 中國計算機制造項目創業計劃書
- 中國掃描電鏡項目創業計劃書
- 中國計算機芯帶項目創業計劃書
- 2025項目經理注冊聘用合同范本
- 中國囊關節融合器項目創業計劃書
- 生態文化傳承與生態保護-洞察闡釋
- 樂山數學中考試題及答案
- 項目工程質量管理協議書
- 居民健康工具包培訓
- 幼兒園設備設施管理
- 計算機基礎技能測試試題及答案
- 中心靜脈壓小講課
- 2025物業服務管理合同(合同范本)
- 2025-2030中國肉牛養殖行業發展分析及發展前景與投資研究報告
- 鳥類種群動態及其影響因子-深度研究
- 2025年內蒙古興安銀鉛冶煉有限公司招聘筆試參考題庫含答案解析
- 大學生畢業代表演講稿
- 2025年山東省路橋集團有限公司招聘筆試參考題庫含答案解析
- 員工住廠外免責協議書(2篇)
評論
0/150
提交評論