乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      微機(jī)原理學(xué)習(xí)心得與各章重點(diǎn)

       昵稱34172831 2016-06-11

      這篇日志前半部分講的是我自己對(duì)這門課的理解,后面是每章的重點(diǎn)。現(xiàn)在看來(lái),寫得非常不詳細(xì)。大家如果還有什么疑問,可以給我留言【不過我也忘得差不多了【揮

      總之,這門課真的很難,大家加油吧……



      微型計(jì)算機(jī)原理與接口技術(shù),這書名看起來(lái)好像是講微機(jī)原理與接口技術(shù)兩部分,其實(shí)我覺得叫微機(jī)原理與匯編語(yǔ)言更合適,感覺它講的主要是這兩部分知識(shí),第一部分微機(jī)原理是講8086是怎么工作的,第二部分匯編語(yǔ)言講的是怎樣用匯編來(lái)控制其完成自己需要完成的任務(wù)。

      電腦,或者叫計(jì)算機(jī),其本質(zhì)還是用來(lái)計(jì)算的,只不過計(jì)算的數(shù)據(jù)多了,叫成處理,都無(wú)所謂,其可以用來(lái)處理數(shù)字化的聲音和圖像,導(dǎo)致多媒體技術(shù)的發(fā)展,才有了現(xiàn)在的世界,其實(shí)其本質(zhì)還是大量的計(jì)算,而程序就是告訴計(jì)算機(jī)要如何計(jì)算或者處理這些數(shù)據(jù),所以這門課的目的就是講怎樣通過計(jì)算機(jī)來(lái)實(shí)現(xiàn)一些基本的計(jì)算任務(wù)。

      首先考慮這樣一道數(shù)學(xué)題:今要用白鐵皮打造一個(gè)無(wú)蓋圓柱鐵桶,已知其底面半徑為r,高度為h,求需要的鐵皮面積S(忽略接縫處)以及該桶可盛的水的體積V(忽略鐵皮的厚度)。

      由上所述,本題的目的就是通過r與h兩個(gè)數(shù)據(jù)計(jì)算S和V,電腦是死的,不知道怎么算,所以需要程序猿告訴它該怎么算,即編程的過程。

      首先考慮人類做此題的過程:通過思考,我們得到解題步驟為先由2πr得底面周長(zhǎng),再由πr^2算得底面積,底面周長(zhǎng)乘以h得側(cè)面積2πrh,S等于底面積與側(cè)面積之和(πr^2+2πrh),底面積乘以h得體積πhr^2。

      計(jì)算機(jī)處理這道問題的時(shí)候與人一樣,只不過機(jī)器遠(yuǎn)不如人類靈活。首先,必須將所有需要的東西寫在電腦的內(nèi)存中,電腦通過讀取內(nèi)存中存儲(chǔ)的信息得知需要做哪些工作。而這部分內(nèi)存需要分為四段,即DS,SS,CS和ES。DS和ES稱為數(shù)據(jù)段,其中DS中存儲(chǔ)源數(shù)據(jù),即程序需要處理的數(shù)據(jù),本題為r和h;ES為目標(biāo)數(shù)據(jù)段,存儲(chǔ)處理完的數(shù)據(jù),即S和V。CS稱為代碼段,即程序猿編寫的程序。SS為堆棧段,人類做題時(shí)似乎不需要這個(gè),但計(jì)算機(jī)卻需要,這就體現(xiàn)出其低級(jí)的地方,堆棧段的作用后面說(shuō)。

      有了數(shù)據(jù)存放的地方,然后需要的就是指針。指針是內(nèi)存單元的地址,其作用是指示數(shù)據(jù)存放的位置和程序進(jìn)行的位置。程序進(jìn)行的過程中,需要有一個(gè)指針指示程序進(jìn)行到了哪一步;當(dāng)程序需要取數(shù)據(jù)時(shí),需要有指針告訴計(jì)算機(jī)從哪個(gè)內(nèi)存單元取數(shù)據(jù),輸出數(shù)據(jù)時(shí)也一樣。就上面的例子而言,先取r,通過調(diào)用兩個(gè)子程序計(jì)算出其面積和周長(zhǎng),再計(jì)算表面積與體積。這時(shí)堆棧就派上用場(chǎng)了。C艸課中都學(xué)過棧LIFO的特點(diǎn),棧指針始終指向棧頂。當(dāng)調(diào)用子程序時(shí),將指示程序運(yùn)行到哪步的指針放入堆棧,然后運(yùn)行子程序。如子程序中還需調(diào)用子程序,則再次將指針壓入堆棧。當(dāng)子程序執(zhí)行完畢時(shí),將堆棧中的數(shù)據(jù)取出來(lái),上一級(jí)程序就可以繼續(xù)執(zhí)行。就好比看書的時(shí)候看到了不懂的部分,用書簽夾一下,去查別的書,查完之后再回到該位置繼續(xù)看。堆棧的作用就是存儲(chǔ)那個(gè)看不懂的地方在什么位置。還是就上面的例子,其中一個(gè)子程序的功能是根據(jù)圓的半徑計(jì)算其周長(zhǎng),那么在調(diào)用該子程序前,先將數(shù)據(jù)指針指向r,然后調(diào)用該子程序,電腦將指示程序運(yùn)行進(jìn)度的指針壓入堆棧,該子程序先將數(shù)據(jù)r取出存放在CPU的某位置中,再通過子程序中的2πr公式計(jì)算出周長(zhǎng),并輸出存放在內(nèi)存的某位置,子程序運(yùn)行完成后電腦自動(dòng)從堆棧中彈出指針,主程序繼續(xù)進(jìn)行。主程序也是類似。例如計(jì)算體積,將數(shù)據(jù)指針指向之前計(jì)算出的底面積,取出數(shù)據(jù)放在CPU中,再將指針指向h,取出數(shù)據(jù),兩數(shù)相乘得到體積,再將其保存在內(nèi)存的某位置。通過這樣一步一步地執(zhí)行處理數(shù)據(jù)的指令,計(jì)算機(jī)就能完成一系列計(jì)算任務(wù)了。

      匯編語(yǔ)言是很低級(jí)的語(yǔ)言,直接跟電腦硬件打交道。許多C艸幾句話就寫完的程序用匯編需要寫好長(zhǎng)。這是其缺點(diǎn),優(yōu)點(diǎn)則是效率高,運(yùn)行速度快。



      幾個(gè)基本概念:

      位和字節(jié):小學(xué)的時(shí)候?qū)W過,2是一位數(shù),23是兩位數(shù),233是三位數(shù)……微機(jī)原理中的位指的是二進(jìn)制的位,例如,8086是16位微處理器,指的是它能處理16位的二進(jìn)制數(shù)據(jù)。2333H就是一個(gè)寫成16進(jìn)制的16位二進(jìn)制數(shù)。而1個(gè)字節(jié)指一個(gè)8位二進(jìn)制數(shù),即8bit=1Byte。一個(gè)16位二進(jìn)制數(shù)的長(zhǎng)度就是2B。1024B=1KB。(書30頁(yè))

      地址、物理地址、段地址、偏移地址:地址即為每個(gè)存儲(chǔ)空間的編號(hào)。8086處理器有20根地址線,每個(gè)存儲(chǔ)空間的地址需要用一個(gè)5位16進(jìn)制數(shù)表示,即為該存儲(chǔ)空間的物理地址。因8086處理器只能處理16位的數(shù)據(jù),所以用段地址和偏移地址來(lái)表示實(shí)際的地址,方法為:段地址左移4位(乘16)后加上偏移地址即為物理地址。例如:段地址為2000H,偏移地址為3333H,則該存儲(chǔ)空間的物理地址為23333H(書70~71頁(yè))。一個(gè)地址所對(duì)應(yīng)的存儲(chǔ)空間能存儲(chǔ)1個(gè)字節(jié)的數(shù)據(jù)。

      例:某存儲(chǔ)器有12條地址線和8條數(shù)據(jù)線,求該存儲(chǔ)器的容量。

      解:因?yàn)橛?條數(shù)據(jù)線,所以每個(gè)地址能存儲(chǔ)1Byte的數(shù)據(jù);12條地址線,共有2^12個(gè)地址,所以總?cè)萘繛?^12Byte=4KByte。


      第1章:

      原碼,反碼,補(bǔ)碼以及之間的轉(zhuǎn)換

      正數(shù):原碼=反碼=補(bǔ)碼

      負(fù)數(shù):反碼:最高位不變,其余位取反;補(bǔ)碼:反碼+1

      一個(gè)字節(jié)的有符號(hào)數(shù),從00H到FFH,原碼:+0,1,2,…,127,-0,-1,…,-127;反碼:+0,1,2,…,127,-127,-126,…,-1,-0;補(bǔ)碼:0,1,2,…,127,-128,-127,…,-1。

      例:A=32H,B=100,寫出A、B、[A-B]的原碼,[A-B]的反碼,補(bǔ)碼。

      答:原:A:32H=00110010B;B:100=01100100B,A-B=48-100=-52=10110100B。

      反:11001011;補(bǔ):11001100。

      ASCII碼:0~9,減30H;A~F,減37H。


      第2章:

      8086CPU從功能上分為兩大部分,即總線接口單元BIU和執(zhí)行單元EU。

      標(biāo)志寄存器FLAGS:

      CF:進(jìn)位標(biāo)志位,有進(jìn)位時(shí)為1。

      PF:奇偶標(biāo)志位,運(yùn)算結(jié)果中1的個(gè)數(shù)為偶數(shù)是為1。

      ZF:零標(biāo)志位,結(jié)果為0時(shí)為1。

      SF:負(fù)號(hào)標(biāo)志位,結(jié)果最高位為1時(shí)為1。

      OF:溢出標(biāo)志位,有溢出時(shí)為1。

      總線周期:一個(gè)最基本的讀或?qū)懼芷诎?個(gè)T狀態(tài),有可能在T3和T4中間插入一個(gè)或幾個(gè)等待狀態(tài)Tw。


      第3章:

      尋址時(shí),BP對(duì)應(yīng)的段寄存器為SS,其余都是DS。

      重要的指令:

      MOV,PUSH,POP,LEA(可用MOV+OFFSET代替),PUSHF,POPF。

      算數(shù):ADD,ADC,INC,SUB,SBB,DEC。NEG取補(bǔ)。

      MUL,IMUL,乘數(shù)在AL或AX中,積在AX或DX+AX中。

      DIV,IDIV,被除數(shù)在AX或DX+AX中,商在AL或AX中,余數(shù)在AH或DX中。

      CBW,CWD,擴(kuò)展。

      DAA壓縮BCD碼調(diào)整。

      邏輯:AND,不需要的與0,需要的與1。

      OR,不變的或0,置1的或1。

      XOR,求反的異或1,不變的異或0。

      TEST(=AND):測(cè)是否是0:0FFH;奇偶:01H;正負(fù):80H。

      CMP(=SUB)。

      跳轉(zhuǎn):JMP,JZ/JNZ是否是零,JA/JAE/JBE/JB無(wú)符號(hào)數(shù),JG/JGE/JLE/JL有符號(hào)數(shù)。

      先看ZF,判斷是否相等。無(wú)符號(hào)數(shù):看CF;有符號(hào)數(shù):看SF與OF是否相等。

      指令對(duì)標(biāo)志位的影響匯總:INC、DEC:不影響CF;邏輯:將CF、OF置0;NOT:不影響標(biāo)志位。

      移位:SHL/SHR,ROL/ROR循環(huán),RCL/RCR帶進(jìn)位循環(huán)。

      串操作:MOVS:DS→ES;STOS:ES;LODS:DS。(因?yàn)镈S是源數(shù)據(jù)段,ES是目標(biāo)數(shù)據(jù)段。)

      循環(huán)LOOP:CX中為循環(huán)次數(shù)。

      CALL、RET:子程序中用。


      第4章:

      DOS系統(tǒng)功能調(diào)用:

      MOV AH,XXH

      INT 21H

      01H:鍵盤輸入,將ACSII碼送入AL中。

      02H:屏幕輸出,將DL中的ASCII碼對(duì)應(yīng)的字符顯示在屏幕上。

      09H:顯示字符串,將DX地址中的字符串顯示在屏幕上。

      4CH:返回DOS系統(tǒng)。

      程序模版:

      DATA SEGMENT;定義數(shù)據(jù)段

      ……

      DATA ENDS

      STACK SEGMENT;定義堆棧段

      STA DW 100 DUP(?)

      TOP EQU LENGTH STA

      STACK ENDS

      CODE SEGMENT

      ASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATA

      MOV AX, DATA

      MOV DS, AX

      MOV ES, AX

      MOV AX, STACK

      MOV SS, AX

      MOV SP, TOP

      ……

      CALL XXX;調(diào)用子程序

      ……

      MOV AH, 4CH;返回DOS系統(tǒng)

      INT 21H

      XXX PROC NEAR;子程序

      ……

      RET;返回主程序

      XXX ENDP;子程序結(jié)束

      CODE ENDS;主程序結(jié)束

      END START


      第5章:

      看書上的電路圖,會(huì)根據(jù)所給地址補(bǔ)畫圖中的存儲(chǔ)器和接線,會(huì)根據(jù)圖寫出每個(gè)存儲(chǔ)器對(duì)應(yīng)的地址范圍,會(huì)計(jì)算存儲(chǔ)器容量。


      第6章:

      CPU與外設(shè)交換的信息與所對(duì)應(yīng)接口的三種類型為:數(shù)據(jù),狀態(tài),控制。

      CPU與外設(shè)之間數(shù)據(jù)傳送的三種控制方式:直接,中斷,DMA。

      中斷向量表:256個(gè)中斷向量,每個(gè)占4個(gè)字節(jié)共1024個(gè)單元,位于00000H~03FFFH。

      給出中斷類型號(hào),乘4即為中斷向量的起始地址。(書329頁(yè)知道0BF6:3A16H怎么來(lái)的)


      第8章:

      8253:

      控制字:

      選擇計(jì)數(shù)器-讀寫方式-工作方式-計(jì)數(shù)選擇

      例:CNT0工作在方式3:00 11 011 0=36H

      CNT1工作在方式0:01 11 000 0=70H

      六種工作方式中,有2種是硬件啟動(dòng),2種初值不能自動(dòng)重裝。

      方式0:軟件啟動(dòng),輸出一段時(shí)間的低電平。(例如按鍵后燈亮1s后熄滅)

      方式1:因其為硬件啟動(dòng),幾乎不會(huì)考。

      方式2:每個(gè)周期中有1個(gè)脈沖時(shí)間為低電平。

      方式3:方波,每個(gè)周期中一半高電平一半低電平。

      N的計(jì)算:N即為輸出的周期與輸入周期的比值。

      程序模版:

      假設(shè)8253的地址為0230H~0233H,CNT0工作在方式3,N=2333H

      MOV DX, 0233H;控制端地址

      MOV AL, 36H;CNT0控制字

      OUT DX, AL;輸出

      MOV DX, 0230H;CNT0地址

      MOV AX, 2333H;N

      OUT DX, AL;先輸出低字節(jié)

      MOV AL, AH;將高字節(jié)移動(dòng)到AL(因OUT只能在AL輸出)

      OUT DX, AL;再輸出高字節(jié)

      8255:

      控制字:一般只考方式0,且A端口輸入,B端口輸出,所以為1 00 1 0 0 0 0=90H。

      C端口:高四位是0,低四位中前3位是要置入的編碼,后1位是置1還是置0。

      例:要把PC3置1,則控制字為0000 011 1=07H。

      檢測(cè)鍵盤有按鍵則返回DOS:

      ……

      MOV AH, 01H

      INT 16H;檢測(cè)按鍵

      JNZ FINISH;有按鍵則跳

      ……

      FINISH: MOV AH, 4CH;結(jié)束,返回DOS

      INT 21H

      ……


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多