導(dǎo)言:
機(jī)器語(yǔ)言:機(jī)器語(yǔ)言是機(jī)器指令的集合。機(jī)器指令展開來講就是一臺(tái)機(jī)器可以正確執(zhí)行的命令寓娩。電子計(jì)算機(jī)的機(jī)器指令是一列二進(jìn)制數(shù)字墨辛。計(jì)算機(jī)將之轉(zhuǎn)變?yōu)橐涣懈叩碗娖接⑷冢允褂?jì)算機(jī)的電子器件受到驅(qū)動(dòng),進(jìn)行運(yùn)算绍豁。
匯編指令和機(jī)器指令的差別在于指令的表示方法上芯咧。匯編指令是機(jī)器指令便于記憶的書寫格式。
1竹揍、匯編語(yǔ)言的組成
匯編語(yǔ)言由以下3類命令組成:
(1)匯編指令:機(jī)器碼的助記符敬飒。
(2)偽指令:沒有對(duì)應(yīng)的機(jī)器碼,由編譯器執(zhí)行芬位,計(jì)算機(jī)并不執(zhí)行无拗。
(3)其他符號(hào):如+,—昧碉,英染,/等,由編譯器識(shí)別被饿,沒有對(duì)應(yīng)的機(jī)器碼四康。
匯編語(yǔ)言的核心是匯編指令*,它決定了匯編語(yǔ)言的特性狭握。
2闪金、存儲(chǔ)器
CPU是計(jì)算機(jī)的核心部件。他控制整個(gè)計(jì)算機(jī)的運(yùn)作并進(jìn)行運(yùn)算哥牍。要想讓一個(gè)CPU工作毕泌,就必須向它提供指令和數(shù)據(jù)。指令和數(shù)據(jù)在存儲(chǔ)器中存放嗅辣,也就是我們平時(shí)所說的內(nèi)存撼泛。在一臺(tái)PC機(jī)中內(nèi)存的作用僅次于CPU。離開了內(nèi)存澡谭,性能再好的CPU也無(wú)法工作愿题。
磁盤不同于內(nèi)存,磁盤上的數(shù)據(jù)或程序如果不讀到內(nèi)存中蛙奖,就無(wú)法被CPU使用潘酗。要靈活地利用匯編語(yǔ)言編程,我們首先要了解CPU是如何從內(nèi)存中讀取信息雁仲,以及向內(nèi)存中寫入信息的仔夺。
3、指令和數(shù)據(jù)
指令和數(shù)據(jù)是應(yīng)用上的概念攒砖。在內(nèi)存或磁盤上缸兔,指令和數(shù)據(jù)沒有任何區(qū)別日裙,都是二進(jìn)制信息。CPU在工作的時(shí)候把有的信息看作指令惰蜜,有的信息看作數(shù)據(jù)昂拂。
1000100111011000 -> 89D8H(數(shù)據(jù))
1000100111011000 -> mov ax,bx(程序)
4、存儲(chǔ)單元
存儲(chǔ)器被劃分為若干個(gè)單元抛猖,每個(gè)存儲(chǔ)單元從0開始順序編號(hào)格侯,例如一個(gè)存儲(chǔ)器由128個(gè)存儲(chǔ)單元,編號(hào)從0~127.
電子計(jì)算機(jī)的最小信息單位是bit(一個(gè)二進(jìn)制位)财著。8個(gè)bit組成一個(gè)Byte联四,即八個(gè)二進(jìn)制位。一個(gè)存儲(chǔ)器有128個(gè)存儲(chǔ)單元瓢宦,可以存儲(chǔ)128個(gè)Byte碎连。
5、CPU對(duì)存儲(chǔ)器的讀寫
CPU要進(jìn)行數(shù)據(jù)的讀寫驮履,必須和外部器件(標(biāo)準(zhǔn)的說法是芯片)進(jìn)行下面三類信息的交互:
- 存儲(chǔ)單元的地址(地址信息)
- 器件的選擇鱼辙,讀或?qū)懙拿睿刂菩畔ⅲ?/li>
- 讀或?qū)懙臄?shù)據(jù)(數(shù)據(jù)信息)
電子計(jì)算機(jī)能處理,傳輸?shù)亩际请娦盘?hào)玫镐,電信號(hào)要通過導(dǎo)線傳送倒戏,計(jì)算機(jī)中有專門連接CPU和其他芯片的導(dǎo)線,通常稱為總線恐似《捧危總線從物理上來講,就是一根根導(dǎo)線的集合矫夷。CPU通過總線將地址葛闷,數(shù)據(jù)和控制信息傳送到存儲(chǔ)器芯片中。
根據(jù)傳送信息的不同双藕,總線從邏輯上又分為3類淑趾,地址總線、控制總線和數(shù)據(jù)總線忧陪。
- CPU通過地址線將地址信息3發(fā)出
- CPU通過控制線發(fā)出內(nèi)存讀命令扣泊,選中存儲(chǔ)器芯片,并通知它嘶摊,將要從中讀取數(shù)據(jù)
- 存儲(chǔ)器將3號(hào)單元中的數(shù)據(jù)8通過數(shù)據(jù)線送人CPU
6延蟹、地址總線
- 地址總線的寬度決定了CPU的尋址能力。
CPU通過地址總線來指定存儲(chǔ)單元叶堆。地址總線上能傳送多少個(gè)不同的信息阱飘,CPU就可以對(duì)多少個(gè)存儲(chǔ)單元進(jìn)行尋址。
一根導(dǎo)線可以傳送的穩(wěn)定狀態(tài)只有兩種,高電平或是低電平俯萌。用二進(jìn)制表示1或0果录,10根導(dǎo)線可以傳送10位二進(jìn)制數(shù)據(jù)。而10位二進(jìn)制數(shù)可以表示2的10次方(1024)個(gè)數(shù)據(jù)咐熙。
一個(gè)CPU有N根地址線,則可以說個(gè)CPU的地址總線的寬度為N辨萍。這樣的CPU最多可以尋找2的N次方個(gè)內(nèi)存單元棋恼。
7、數(shù)據(jù)總線
- 數(shù)據(jù)總線的寬度決定了CPU與其他器件進(jìn)行數(shù)據(jù)傳送時(shí)的一次數(shù)據(jù)傳送量锈玉。
CPU與內(nèi)存或器件之間的數(shù)據(jù)傳送是通過數(shù)據(jù)總線來進(jìn)行的爪飘。數(shù)據(jù)總線的寬度決定了CPU和外界的數(shù)據(jù)傳送速度。8根數(shù)據(jù)總線一次可傳送一個(gè)8位二進(jìn)制數(shù)據(jù)(一個(gè)字節(jié))拉背。16根數(shù)據(jù)總線一次可以傳送2個(gè)字節(jié)师崎。
8、控制總線
- 控制總線的寬度決定了CPU對(duì)外部器件的控制能力
CPU對(duì)外部器件的控制是通過控制總線來進(jìn)行的椅棺。
控制總線是一些不同控制線的集合犁罩。有多少控制總線,就意味著CPU提供了對(duì)外部器件的多少種控制两疚。
9床估、各類存儲(chǔ)器芯片
- 隨機(jī)存儲(chǔ)器
用于存放CPU使用的絕大部分程序和數(shù)據(jù),主隨機(jī)存儲(chǔ)器一般由兩個(gè)位置上的RAM組成诱渤,裝在主板上的RAM和插在擴(kuò)展槽上的RAM - 裝有BIOS的ROM
BIOS是由主板和各類接口卡(PS:顯卡丐巫、網(wǎng)卡等)廠商提供的軟件系統(tǒng),可以通過它利用該硬件設(shè)備進(jìn)行最基本的輸入輸出勺美。在主板和某些接口卡上插有存儲(chǔ)相應(yīng)BIOS的ROM递胧。例如:主板上的ROM中存儲(chǔ)著顯卡的BIOS;如果網(wǎng)卡上裝有ROM赡茸,那其中就可以存儲(chǔ)網(wǎng)卡的BIOS - 接口卡上的RAM
某些接口卡需要對(duì)大批量輸入缎脾、輸出進(jìn)行暫時(shí)存儲(chǔ),在其上裝有RAM坛掠。最典型的是顯卡上的RAM赊锚,一般稱為顯存。顯示卡隨時(shí)將顯存中的數(shù)據(jù)向顯示器上輸出屉栓。
10舷蒲、內(nèi)存地址空間
存儲(chǔ)器在物理上是獨(dú)立的器件,他們?cè)谝韵聝牲c(diǎn)上相同:
- 都和CPU的總線相連
- CPU對(duì)它們進(jìn)行讀寫的時(shí)候都通過控制線發(fā)出內(nèi)存讀寫命令
CPU在操縱和控制它們的時(shí)候都把他們當(dāng)作內(nèi)存來對(duì)待友多,把它們總的看作是一個(gè)由若干個(gè)存儲(chǔ)單元組成的邏輯存儲(chǔ)器牲平,這個(gè)邏輯存儲(chǔ)器就是我們所說的內(nèi)存地址空間。
內(nèi)存地址空間的大小受CPU地址總線的限制域滥。8086CPU個(gè)的地址總線寬度為20纵柿,可以傳送2^20個(gè)不同的地址信息蜈抓。
我們可以從0~9FFFF的內(nèi)存單元中讀取數(shù)據(jù),實(shí)際上是在讀取主隨機(jī)存儲(chǔ)器的數(shù)據(jù)昂儒;
向地址A0000~BFFFF的內(nèi)存單元中寫數(shù)據(jù)沟使,就是想顯存中寫入數(shù)據(jù),會(huì)顯示在顯示器上渊跋;
向地址C0000~FFFFF的內(nèi)存單元寫入數(shù)據(jù)的操作是無(wú)效的腊嗡,這等于改寫只讀存儲(chǔ)器中的內(nèi)容;