在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 匯編入門學習筆記 (一)—— 基礎知識、寄存器

            匯編入門學習筆記 (一)—— 基礎知識、寄存器

            作者: 時間:2016-11-09 來源:網(wǎng)絡 收藏
            瘋狂的暑假學習之 匯編入門學習筆記 (一)

            本文引用地址:http://www.biyoush.com/article/201611/317775.htm

            參考:《匯編語言》 王爽 第一,二章

            一、基礎知識

            1. 用匯編語言編寫程序的工作過程

            匯編本質(zhì)就是為了方便程序員,把二進制代碼用匯編指令來表示

            匯編指令----------------> 編譯器 ---------------->機器碼----------------> 計算機執(zhí)行

            mov ax, bx 100010001

            ................ ...............

            2. 匯編語言的組成

            匯編由下面3類指令組成

            (1)匯編指令:如mov, add 等,有著對應的機器碼.

            (2)偽指令:沒有對應的機器碼,由編譯器執(zhí)行,計算機不執(zhí)行

            (3)其他符號:如+、-、*、/ 等由編譯器識別,沒有對應的機器碼。

            3. 指令和數(shù)據(jù)

            指令和數(shù)據(jù),存在存儲器中沒有區(qū)別。比如同一段二進制1000100111011000

            cpu可以把它看作指令 mov ax, bx 也可以看作數(shù)據(jù) 89D8H

            4. 位,字節(jié)、字(word)、字長、存儲單元

            字節(jié):由8位組成

            字(word):計算機在同一時間內(nèi)處理的一組二進制數(shù)稱為一個計算機的“字”,大小由cpu決定,如8086cpu就是16位即2個字節(jié)。

            字長:就是字的長度。

            存儲單元:存儲器被劃分成若干個存儲單元,大小為8位即一個字節(jié)。如內(nèi)存最小單元就是一個字節(jié),[0]中就是一個字節(jié)。

            5.CPU總線

            外部總線

            地址總線:決定CPU的尋址能力。8086CPU有20根地址總線尋址能力是2^20即1MB。

            數(shù)據(jù)總線:決定CPU與其他器件(如內(nèi)存,顯卡)進行數(shù)據(jù)傳輸?shù)膫鬏斄俊?086CPU有16根地址總線(就是字長)。

            控制總線:決定CPU對系統(tǒng)中其他器件(如內(nèi)存,顯卡)的控制能力。

            6. 地址空間

            電腦由很多器件組成。如內(nèi)存條,網(wǎng)卡,顯卡。他們都有內(nèi)存的。它們都與cpu總線相連。CPU對它們進行讀或?qū)懙臅r候都是通過控制線發(fā)出內(nèi)存讀寫命令。也就是說CPU在操 控它們的時候,把它們都當作內(nèi)存看待,把它們總的當作一個由若干存儲單元組成的邏輯存儲器,這個存儲器就是內(nèi)存地址空間(就是說CPU的地址空間,不僅僅是內(nèi)存條的內(nèi)存,而是電腦上所有的存儲器)

            如:

            00000~9FFFF 主存地址空間(內(nèi)存條)

            9FFFF~A0000 顯存地址空間

            C0000~FFFFF 各類ROM地址空間(如主板BIOS,顯卡BIOS)

            二、寄存器

            前面講的總線都是對cpu外部來講的外部總線。cpu 的運算器、控制器、寄存器都是靠內(nèi)部總線相連的

            運算器:進行信息的處理

            存儲器:進行信息存儲

            控制器:控制各個器件進行各種

            對于匯編程序來說,CPU中主要的部件是寄存器。

            如8086CPU有14個寄存器:

            ax, bx, cx, dx, si, di, sp, bp, ip, cs, ss, ds, es ,psw

            ax,bx,cx,dx, 用來存放一般數(shù)據(jù)。大小是16位即2個字節(jié)

            cs是代碼段地址寄存器

            ip是指令指針寄存器,存放偏移地址

            ds是數(shù)據(jù)段寄存器

            1.通用寄存器

            ax,bx,cx,dx, 用來存放一般數(shù)據(jù)。大小是16位即2個字節(jié)

            8086CPU為了兼容上一代的8位CPU,ax,bx,cx,dx都可以分成兩個獨立的寄存器

            AX 可分為 AH (AX的高8位)和 AL(AX低8位)

            同理BX 可分為 BH 和BL 、CX 可分為CH 和 CL 、DX可分為DH和AL

            2.幾條匯編指令

            mov ax, 18 ax=0018H

            mov ah, 78 ah=0078H

            add ax, 8 ax = ax+008H

            mov ax, bx ax = bx

            add ax, bx  ax = ax + bx

            3. 8086CPU給出物理地址的方法

            8086CPU地址總線有20根,而8086是16位的CPU,只能一次性處理傳輸和暫時存儲16位。

            8086CPU采用了用兩個16位地址合成一個20位物理地址的方法就是:

            物理地址 = 段地址 * 16 + 偏移地址 

            4. 段寄存器

            8086CPU 有4個段寄存器 CS、DS、SS、ES

            (1)cs和ip

            cs是代碼段地址寄存器

            ip是指令指針寄存器,存放偏移地址

            不能用 mov cs, 1000H mov ip, 0 來修改段寄存器

            要用jmp指令如

            jmp 2AE3:3 把cs改成2AE3H 把ip改成003H

            如果只想改ip用如下指令

            jmp 0 或者jmp ax

            特別注意: cs=0001H ip=0000H

            與 cs=0000H ip=00010H 是同一個地址 ,因為物理地址 = 段地址 * 16 + 偏移地址相同。不要以為cs不同物理地址就不同。

            可以通過《匯編語言》 王爽 的實驗一來了解寄存器的工作



            評論


            技術專區(qū)

            關閉