




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 有關(guān)CPU的進(jìn)展和匯編語言的實(shí)例設(shè)計(jì)【摘要】 CPU (Central Processing Unit) 是計(jì)算機(jī)的核心 , 負(fù)責(zé)處理、運(yùn)算計(jì)算機(jī)內(nèi)部的所有 數(shù)據(jù)。本文研究了 CPU 的構(gòu)成和原理,并介紹了與 CPU 關(guān)系密切的匯編語言,利用匯編 語言編寫了一下典型的實(shí)例。第一章是 CPU 和匯編語言的一些簡介;第二章介紹了 CPU 的結(jié)構(gòu)原理、控制方式和 控制流程等方面的內(nèi)容;第三章從 CPU 的歷史入手,對 CPU 的發(fā)展前景進(jìn)行了展望;第 四章中總結(jié)了一些匯編語言的作用和特點(diǎn); 第五章中利用匯編語言編寫了一些典型的實(shí)例來 加深對匯編語言的認(rèn)識(shí)?!娟P(guān)鍵字】 CPU ;匯編語言;實(shí)例設(shè)計(jì)【
2、 Abstract】CPU (Central Processing Unit) is the core of the computer, in responsible of dealing and calculating all the data inside the computer. In the passage, we study structure and principle of CPU, and introduce the assembly language which is close to the CPU utilization, and the typical example
3、 of assembly language.The first chapter is a short introduction of CPU and assembly language. The second chapter is the CPU control mode and structural principle, control process etc. The third chapter starts from the history of CPU, and prospects the development of CPU. The fourth chapter summarize
4、s some assembly language functions and features. The fifth chapter using assembly language some typical examples to deepen the understanding of assembly language.【 keywords】CPU;Assembly Language;, example design目錄 TOC o 1-5 h z 1引言1 HYPERLINK l bookmark4 o Current Document CPI的基本原理2 HYPERLINK l book
5、mark6 o Current Document CPU的基本組成3 HYPERLINK l bookmark8 o Current Document CPU的工作原理4 HYPERLINK l bookmark20 o Current Document CPU的最新進(jìn)展9 HYPERLINK l bookmark22 o Current Document CPU發(fā)展的簡史9 HYPERLINK l bookmark30 o Current Document CPU的發(fā)展GPU和CPU的融合10 HYPERLINK l bookmark36 o Current Document 匯編語言的作用
6、和特點(diǎn)11 HYPERLINK l bookmark38 o Current Document 匯編語言的作用11 HYPERLINK l bookmark40 o Current Document 匯編語言的主要特點(diǎn)12 HYPERLINK l bookmark42 o Current Document 匯編語言典型實(shí)例設(shè)計(jì)16 HYPERLINK l bookmark44 o Current Document 條件轉(zhuǎn)移指令16 HYPERLINK l bookmark46 o Current Document 算術(shù)運(yùn)算指令18 HYPERLINK l bookmark48 o Curren
7、t Document 移位運(yùn)算指令20 HYPERLINK l bookmark50 o Current Document 綜合實(shí)例21 HYPERLINK l bookmark52 o Current Document 6結(jié)束語24 HYPERLINK l bookmark54 o Current Document 參考文獻(xiàn)25CPU是中央處理單元(Ce ntral Processi ng Un it)的縮寫,它可以被簡稱做微 處理器(Microprocessor),不過經(jīng)常被人們直接稱為處理器 (processor) 。 CPU 是計(jì)算機(jī)的核心,其重要性好比大腦對于人一樣,因?yàn)樗?fù)責(zé)處理、
8、運(yùn)算計(jì)算機(jī) 內(nèi)部的所有數(shù)據(jù)。cpu的發(fā)展可以說決定著微型計(jì)算機(jī)技術(shù)的發(fā)展。2計(jì)算機(jī)的工作是依靠機(jī)器語言來實(shí)現(xiàn)的,而機(jī)器語言由于編寫的程序不易 讀、出錯(cuò)率高、難以維護(hù)等原因,不能得到廣泛應(yīng)用。在機(jī)器語言的基礎(chǔ)上,用 助記符代替操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替地址碼。這樣用符 號(hào)代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言變成了匯編語言。由于在某些領(lǐng)域中 匯編語言的特點(diǎn)較適合編寫程序,因此匯編語言得到了廣泛的應(yīng)用。52 . CPU的基本原理2.1 CPU的基本組成CPU通常包含運(yùn)算部件、寄存器組、微命令產(chǎn)生部件、時(shí)序系統(tǒng)等主要部件, 由CPU內(nèi)部的總線將這些部件連接起來,實(shí)現(xiàn)它們
9、之間的信息交換。其中,運(yùn) 算部件和一部分寄存器屬于傳統(tǒng)運(yùn)算器部分,另一部分寄存器、微命令產(chǎn)生部件、 時(shí)序系統(tǒng)等則屬于傳統(tǒng)控制器部分。運(yùn)算部件運(yùn)算部件的任務(wù)是對操作數(shù)進(jìn)行加工處理。基本的運(yùn)算部件主要由三部分組CPU 內(nèi)部的數(shù)據(jù)成,如圖 1-1 所示1)輸入邏輯 操作數(shù)可以來自各種寄存器,也可以來自線。每次運(yùn)算最多只能對兩個(gè)數(shù)據(jù)進(jìn)行操作負(fù)責(zé)對兩個(gè)操作數(shù)2)算術(shù)、邏輯運(yùn)算部件 ALU ( Arithmetic Logic Unit )是運(yùn)算部件的核心,完成具體的運(yùn)算操作。 它的主要部件就是一個(gè)加法器, 進(jìn)行求和運(yùn)算(3)輸出邏輯 運(yùn)算結(jié)果可以直接送往接收部件,也可以經(jīng)左移或右移后再 送往接收部件,所
10、以輸出邏輯往往具有移位功能,常用移位門(多路選擇器) 通過斜位傳送實(shí)現(xiàn)左移、右移或字節(jié)交換。寄存器組計(jì)算機(jī)工作時(shí),CPU需要處理大量的控制信息和數(shù)據(jù)信息, 例如對指令信息進(jìn)行 譯碼,以便產(chǎn)生相應(yīng)控制命令; 對操作數(shù)進(jìn)行算術(shù)或邏輯運(yùn)算加工, 并且根據(jù)運(yùn) 算結(jié)果決定后續(xù)操作,等等。因此,在 CPU 中需要設(shè)置若干寄存器,暫時(shí)存放 這些信息。微命令產(chǎn)生部件 計(jì)算機(jī)的工作體現(xiàn)為指令序列的連續(xù)執(zhí)行,實(shí)現(xiàn)信息傳送要靠微命令的控制,因此在 CPU 中設(shè)置微命令產(chǎn)生部件,根據(jù)控制信息產(chǎn)生微命令序列,對指 令功能所要求的數(shù)據(jù)傳送進(jìn)行控制, 且在數(shù)據(jù)傳送至運(yùn)算部件時(shí)控制完成運(yùn)算處 理。微命令產(chǎn)生部件可由若干組合邏
11、輯電路組成, 也可以由專門的存儲(chǔ)邏輯組成。 因此,產(chǎn)生微命令的方式也就分為組合邏輯控制方式和微程序控制方式兩種。時(shí)序系統(tǒng) 計(jì)算機(jī)的工作常常是分步執(zhí)行的,需要有一種時(shí)間信號(hào)作為分步執(zhí)行的標(biāo)志,如周期、節(jié)拍等。節(jié)拍是執(zhí)行一步操作所需的時(shí)間,一個(gè)周期可能包含幾個(gè) 節(jié)拍。這樣,一條指令在執(zhí)行過程中,根據(jù)不同的周期、節(jié)拍信號(hào),就能在不同 的時(shí)間發(fā)出不同的微命令,完成不同的操作。 周期、節(jié)拍、脈沖等信號(hào)稱為時(shí) 序信號(hào),產(chǎn)生時(shí)序信號(hào)的部件稱為時(shí)序發(fā)生器或時(shí)序系統(tǒng), 它由一個(gè)振蕩器和一 組計(jì)數(shù)分頻器組成。振蕩器是一個(gè)脈沖源,輸出頻率穩(wěn)定的主振脈沖,也稱時(shí)鐘 脈沖,為CPU提供時(shí)鐘基準(zhǔn)。時(shí)鐘脈沖經(jīng)過一系列計(jì)數(shù)分
12、頻,產(chǎn)生所需的節(jié)拍(時(shí)鐘周期)信號(hào)或持續(xù)時(shí)間更長的工作周期(機(jī)器周期)信號(hào)。2.2 CPU的工作原理221運(yùn)算器基本原理一.ALU的組成利用集成電路技術(shù),可將若干位全加器、并行進(jìn)位鏈、輸入選擇門等3部分集成在一塊芯片上,稱為多功能算術(shù)、邏輯運(yùn)算部件ALU。S2-1 一位AUJ單元的結(jié)構(gòu)圖下面以一位ALU單元(圖2-1 )來分析。一位ALU單元可劃分為3部分。(1)一位加法器:包括由兩個(gè)半加器構(gòu)成的一位全加器和由與或非門構(gòu)成的 一位進(jìn)位門。(2)一位輸入選擇器:由一對與或非門構(gòu)成。本位輸入兩個(gè)操作數(shù)iA、iB或者Ai、Bi,4個(gè)控制信號(hào)S3、S2、S1、SO,可選擇16種功能??刂崎T:用來選擇
13、ALU 做算術(shù)運(yùn)算或邏輯運(yùn)算。當(dāng)輸入控制信號(hào) M=0 時(shí),開門接收低位來的進(jìn)位信號(hào) Ci-1 ,執(zhí)行算術(shù)運(yùn)算;當(dāng) M=1 時(shí),關(guān)門不接收 Ci-1 ,執(zhí)行邏輯運(yùn)算,即按位進(jìn)行運(yùn)算,與進(jìn)位無關(guān)。二運(yùn)算方法計(jì)算機(jī)中各種復(fù)雜的運(yùn)算處理都可以根據(jù)算法分解為四則運(yùn)算或基本的邏 輯運(yùn)算,而四則運(yùn)算最終可以歸結(jié)為加法運(yùn)算。下面以定點(diǎn)加減法為例,討論 CPU中算法的邏輯實(shí)現(xiàn)。計(jì)算機(jī)中,帶符號(hào)的數(shù)有原碼、補(bǔ)碼、反碼等幾種表示方法。原碼加減運(yùn)算 復(fù)雜,而補(bǔ)碼加減運(yùn)算則比較簡單,因而計(jì)算機(jī)中基本采用補(bǔ)碼加減法。 補(bǔ)碼加減是指:操作數(shù)用補(bǔ)碼表示,連同符號(hào)位一起運(yùn)算,結(jié)果也用補(bǔ)碼表示。 補(bǔ)碼加減所依據(jù)的基本關(guān)系是:(X
14、+Y)補(bǔ)=X補(bǔ)+Y補(bǔ) (X-Y)補(bǔ)=X 補(bǔ) + (-Y 補(bǔ)) 補(bǔ)碼加減算法運(yùn)算規(guī)則如下。參與運(yùn)算的操作數(shù)用補(bǔ)碼表示,符號(hào)位作為數(shù)的一部分直接參與運(yùn)算,所得運(yùn)算結(jié)果即為補(bǔ)碼表示形式。若操作碼為加,則兩數(shù)直接相加。若操作碼為減,則將減數(shù)變補(bǔ)后再與被減數(shù)相加。2.2.2 寄存器與寄存器尋址方式PU是所有運(yùn)算進(jìn)行的地方,內(nèi)存中的兩個(gè)數(shù)不能直接進(jìn)行運(yùn)算, 寄存器是為 了完成運(yùn)算提供“場地”的記憶單元。在指令中,指定操作數(shù)或操作數(shù)存放位置的方法稱為尋址方式。 其中寄存器尋址方式是一種簡單快捷的尋址方式, 源和目的操作數(shù)都可以是 寄存器。寄存器尋址方式有以下兩個(gè)主要優(yōu)點(diǎn), 從 CPU 的寄存器中讀取操作數(shù)要
15、比訪問主存快得多, 所需時(shí)間大約是從 主存中讀數(shù)時(shí)間的幾分之一到幾十分之一。 因此在CPU中設(shè)置足夠多的寄存器, 以盡可能多地在寄存器之間進(jìn)行運(yùn)算操作,已成為提高工作速度的重要措施之。 由于寄存器數(shù)遠(yuǎn)少于主存儲(chǔ)器的單元數(shù), 所以指令中存放寄存器號(hào)的字 段位數(shù)也就大大少于存放主存地址碼所需位數(shù)。 采用寄存器尋址方式,可以大大 減少指令中一個(gè)地址的位數(shù),從而有效地縮短指令長度。這也就減少了讀取指令 的時(shí)間,提高了工作速度。表1通用寄存器的主要用途寄存器的分類寄存器主要用途AX乘、除運(yùn)算,字的輸入輸出,中間結(jié)果的緩存數(shù)據(jù)AL字節(jié)的乘、除運(yùn)算,字節(jié)的輸入輸出,十進(jìn)制算 術(shù)運(yùn)算通 用 寄 存 器AH字節(jié)
16、的乘、除運(yùn)算,存放中斷的功能號(hào)寄存器BX存儲(chǔ)器指針CX串操作、循環(huán)控制的計(jì)數(shù)器CL移位操作的計(jì)數(shù)器DX字的乘、除運(yùn)算,間接的輸入輸出變址SI存儲(chǔ)器指針、串指令中的源操作數(shù)指針寄存器DI存儲(chǔ)器指針、串指令中的目的操作數(shù)指針變址BP存儲(chǔ)器指針、存取堆棧的指針寄存器SP堆棧的棧頂指針指令指針I(yè)P/EIP標(biāo)志位寄存器Flag/EFlag32位CPU的16位CPU勺段寄存器ES附加段寄存器CS代碼段寄存器SS堆棧段寄存器DS數(shù)據(jù)段寄存器新增加的段寄存器FS附加段寄存器GS附加段寄存器段寄存器223 CPU時(shí)序控制方式計(jì)算機(jī)的許多工作,如指令的執(zhí)行常常需要分步進(jìn)行,因此應(yīng)在微命令的形 成邏輯中引入有關(guān)的時(shí)
17、間標(biāo)志,即時(shí)序信號(hào),使計(jì)算機(jī)的操作能在不同的時(shí)間段 中有序地完成。很顯然,這些操作是受時(shí)序信號(hào)同步控制的。計(jì)算機(jī)中還有一些操作,如系統(tǒng)總線上的一些數(shù)據(jù)傳送則不受時(shí)序信號(hào)同步控制。我們將計(jì)算機(jī)的操作與時(shí)序信號(hào)之間的關(guān)系稱為時(shí)序控制方式。按照同步或非同步的關(guān)系,可 將時(shí)序控制方式分為同步控制和異步控制兩大類。在實(shí)際應(yīng)用中常會(huì)發(fā)生許多變 化,如在同步控制的基礎(chǔ)上加入異步應(yīng)答的方式等。一.同步控制方式同步控制方式是指用統(tǒng)一發(fā)出的時(shí)序信號(hào)對各項(xiàng)操作進(jìn)行同步控制。這里的時(shí)序信號(hào)指的就是前述的周期、節(jié)拍、脈沖等信號(hào);各項(xiàng)操作中有的需要在一段 時(shí)間內(nèi)進(jìn)行,有的則需要在某個(gè)時(shí)刻定時(shí)完成。在同步控制方式中,操作時(shí)
18、間被 劃分為許多長度固定的時(shí)間段,一個(gè)時(shí)間段就是一個(gè)節(jié)拍,也稱時(shí)鐘周期。每個(gè) 時(shí)鐘周期完成一步操作,至于一步操作要做哪些事,不同的機(jī)器有不同的安排。 時(shí)鐘周期作為基本的時(shí)序單位,一旦確定,便固定不變,這是同步控制方式的主 要特點(diǎn)。CPU根據(jù)統(tǒng)一的時(shí)鐘周期為指令的執(zhí)行安排嚴(yán)格的時(shí)間表,各操作必須按時(shí)間表執(zhí)行。同步控制方式的優(yōu)點(diǎn)是時(shí)序關(guān)系簡單, 時(shí)序劃分規(guī)整,控制不復(fù) 雜,控制部件在結(jié)構(gòu)上易于集中,設(shè)計(jì)方便。因此在 CPU內(nèi)部、其他部件或設(shè) 備內(nèi)部,廣泛采用同步控制方式。在系統(tǒng)總線上,如果各部件、設(shè)備之間的傳送 距離不太長,工作速度的差異不太大,或者傳送所需的時(shí)間比較固定,也廣泛采 用同步控制方式
19、。 同步控制方式的缺點(diǎn)是在時(shí)間的安排上可能不合理。因?yàn)楦?步操作實(shí)際所需的時(shí)間可能不同,如果將它們安排在統(tǒng)一的固定時(shí)鐘周期內(nèi)完 成,必然要根據(jù)最長操作所需的時(shí)間來確定時(shí)鐘周期的寬度,而對于需時(shí)較短的 操作則存在著時(shí)間上的浪費(fèi)。 在這種情況下, 為了合理利用時(shí)間, 系統(tǒng)總線上的 傳送操作也可采用異步控制方式來實(shí)現(xiàn)。二 異步控制方式 異步控制方式是指各項(xiàng)操作不受統(tǒng)一時(shí)序信號(hào)(如時(shí)鐘周期)的約束,而是 根據(jù)實(shí)際需要安排不同的時(shí)間。 各操作之間的銜接、 各部件之間的數(shù)據(jù)傳送均采 用異步應(yīng)答方式。 應(yīng)答的雙方分別稱為主設(shè)備與從設(shè)備, 主設(shè)備是指能申請并且 掌握總線控制權(quán)的設(shè)備(主動(dòng)的一方) ;從設(shè)備是指
20、響應(yīng)主設(shè)備要求的設(shè)備(被 動(dòng)的一方),從設(shè)備不能掌握總線權(quán)。應(yīng)答過程由主設(shè)備啟動(dòng)。在這一過程中, 首先由主設(shè)備申請使用總線, 獲得批準(zhǔn)后主設(shè)備掌握總線控制權(quán), 向總線發(fā)送操 作命令、總線地址等信息。之后,主設(shè)備向從設(shè)備提出傳送要求,并且詢問從設(shè) 備是否準(zhǔn)備好。從設(shè)備回答,如果還未準(zhǔn)備就緒,主設(shè)備便等待;如果從設(shè)備已 經(jīng)準(zhǔn)備好, 主設(shè)備便可與之進(jìn)行數(shù)據(jù)傳送, 將數(shù)據(jù)送往從設(shè)備, 或從從設(shè)備接收 數(shù)據(jù)。從主設(shè)備提出申請到獲得批準(zhǔn)、 從主設(shè)備發(fā)出詢問到收到從設(shè)備回答等階 段所需的時(shí)間, 以及實(shí)際傳送時(shí)間都可根據(jù)需要而變化, 體現(xiàn)了異步的含義。 異 步控制方式的優(yōu)點(diǎn)是時(shí)間安排緊湊、 合理,能按不同部件
21、、 不同設(shè)備的實(shí)際需要 分配時(shí)間;缺點(diǎn)是控制比較復(fù)雜。因此很少在 CPU 內(nèi)部或設(shè)備內(nèi)部采用異步控 制方式,而是用它來控制某些場合下的系統(tǒng)總線操作。三聯(lián)合控制方式 所謂聯(lián)合控制方式,是同步和異步控制方式的結(jié)合。對于不同的操作序列以 及其中的每個(gè)操作,實(shí)行部分同意、部分區(qū)別對待的方式。亦即,把各操作序列 中那些可以同意的部分, 安排在一個(gè)具有固定周期、 節(jié)拍和嚴(yán)格時(shí)鐘同步的時(shí)序 信號(hào)控制下執(zhí)行, 而把那些難于統(tǒng)一起來, 甚至執(zhí)行時(shí)間都難于確定的操作另行 處理,不用時(shí)鐘信號(hào)同步,按照實(shí)際需要占用操作時(shí)間,通過“結(jié)束起始”方 式和公共的同步控制部分銜接起來。 現(xiàn)代計(jì)算機(jī)大多采用同步控制方式或聯(lián)合控
22、制方式。224 CPU的控制流程計(jì)算機(jī)對信息進(jìn)行處理是通過不斷執(zhí)行程序來實(shí)現(xiàn)的。程序是能完成某個(gè)確定算法的指令序列,所以計(jì)算機(jī)進(jìn)行信息處理的過程就是不斷地取指令、分析指:啟遐序執(zhí)一取岀尹令分析指令執(zhí)行指令轉(zhuǎn)中斷處理程序返回圖2-2CPuSr控制流程圖令和執(zhí)行指令這樣一個(gè)周而復(fù)始的過程。 CPU控制流程如圖2-2所示,它由以下 4步完成:取指令。由程序計(jì)數(shù)器(PC指出當(dāng)前指令地址,通過執(zhí)行“MA&(PC 和“ Read命令,從主存中取出指令。分析指令。對取出的指令進(jìn)行分析,指出它執(zhí)行什么操作,產(chǎn)生相應(yīng)的 操作控制信號(hào)。如果參與操作的數(shù)據(jù)在主存中,則還需要形成操作數(shù)地址。執(zhí)行指令。根據(jù)指令分析得到
23、的“操作命令”和“操作數(shù)地址”,按一定 的算法行程相應(yīng)的操作控制命令序列,通過運(yùn)算器、存儲(chǔ)器以及外部設(shè)備的具體 執(zhí)行,實(shí)現(xiàn)每條指令的功能。對異常情況和某些請求的處理。當(dāng)機(jī)器出現(xiàn)某些異常情況,此時(shí)有這些部件或設(shè)備發(fā)出“中斷請求”信號(hào),待執(zhí)行完畢當(dāng)前指令后,CPU相應(yīng)該請求,中止當(dāng)前執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。當(dāng)處理完畢后,再返回源程序繼 續(xù)運(yùn)行。225 CPU的實(shí)例分析Pentium微處理器是INTEL80 x86系列微處理器的第五代產(chǎn)品,其性能比它 的前一代產(chǎn)品有較大幅度的提高。與相同工作頻率下的80486相比,整數(shù)運(yùn)算性能提高一倍,浮點(diǎn)運(yùn)算性能提高近四倍。常用的整數(shù)運(yùn)算指令與浮點(diǎn)運(yùn)算指
24、令 采用硬件電路實(shí)現(xiàn),不再使用微碼解釋執(zhí)行,使指令的執(zhí)行速度進(jìn)一步加快。 Pentium微處理器之所以有如此高的性能,在于該微處理器體系結(jié)構(gòu)采用了一系 列新的設(shè)計(jì)技術(shù),如雙執(zhí)行部件、超標(biāo)量體系結(jié)構(gòu)、集成浮點(diǎn)部件、64位數(shù)據(jù)總線、指令動(dòng)態(tài)轉(zhuǎn)移預(yù)測、回寫數(shù)據(jù)高速緩存、錯(cuò)誤檢測與報(bào)告等。仍件0)sum=sum+Listi; count=count-1;i=i+1;匯編語言:MOV CX , 10 ; countMOV AX , 0 ; sumMOV DI , 0 ; 偏移地址Start:CMP CX , 0JE end ; (CX)=0 時(shí)轉(zhuǎn)移ADD AX , ListDISUB CX , 1ADD
25、 DI , 2JMP startEnd0”,“=0”,C語言:int CA=0 , CX=0 , CE=0 ;for(int i=0;i0) CA+;else if (Listi=0) CE+;else CB+;匯編語言MOV CX,0MOV CA,0MOV CB,0MOV CE,0S:CMP CX,10JE endMOV DI,0ADD CX,1CMP ListDI,0JBE nextADD CA,1JMP Cnext: CMP ListDI,0JE next1ADD CB,1JMP Cnext1: ADD CE,1C: ADD DI,1JMP SEnd5.2 算術(shù)運(yùn)算指令例 3:分析“ A
26、DD AX,BX:設(shè)執(zhí)行前(AX)=35C9H, (BX)=726DH執(zhí)行后(AX)=A836H,BX不變,SF=1, PF=1,2F=0, 0F=1, CF=O, AF=1例 4:分析“ SUB CX,BX”:設(shè)執(zhí)行前(CX)=1296H, (DS)=2000H,(BX)=100H,(20100H)=3DH,(20101H)=28H,由BX尋址得到數(shù)據(jù) 283DH;執(zhí)行后:(CX)=0EA59H,BX不 變,SF=1, PF=1,2F=0, 0F=0, CF=1, AF=1例 5:分析“ IMUL BL”:設(shè)執(zhí)行前(AL)=05H, (BL)=F7H,(補(bǔ))=-9執(zhí)行后(AX)=FFD3H即
27、-(05*09)的補(bǔ)碼)例6:分析“ IDIV VL ”:設(shè)執(zhí)行前 (AX)=FF05H, (BL)=17H,( 補(bǔ))=-9執(zhí)行后(AL)=F6H(-10的補(bǔ),為商),(AH)=EBH(-21的補(bǔ),為余數(shù))例7:對長數(shù)的運(yùn)算 求“7H0A15BE” 土“ 30517A6BH加法:MOV AX,15BEHADD AX,7A6BHMOV DX,7H0AHADD DX,3051H減法:MOV AX,15BEHSUB AX,7A6BHMOV DX,7H0AHSBB DX,3051H5.3 移位運(yùn)算指令例8:將AL中壓縮的BCD碼轉(zhuǎn)化為兩個(gè)字節(jié)的 ASCII碼送BX設(shè)(AL)=aiaHMOV BH,AL
28、;備份MOV CK,4;設(shè)移位次數(shù)SHR BH,CL;(BH)=0a1HADD BH 30H; 調(diào)為 ASCII 碼MOV BL,AL; 另一備份AND BL 0FH; (BH)=0a2HADD BL,30H; 調(diào)為 ASCII 碼例9:不用乘法指令編寫程序段實(shí)現(xiàn) X(AX)*10用移位指令SHL AX,1; *2MOV BX,AX 備份SHK AX,1; *2SHL AX,1; *2ADD AX,BX用加法指令A(yù)DD AX,AXMOV BX,AXADD AX,AXADD AX,AXADD AX,BX注:33(AX)*10=(AX)*(2 +2)=(AX)*2 +(AX)*2 =(AX)*2)
29、*2)*2+(AX)*25.4 綜合實(shí)例例 10:設(shè)變量 char 中存儲(chǔ)了一個(gè)字符,若七位大寫則將其改為小寫MOV AL,char;CMP AL,A;JB exit;CMP AL,Z;JA exit;ADD char,20H;該指令只在大寫時(shí)被執(zhí)行(小寫字母的 ASCII 碼比大寫的大 20H)exit:例11:求DX:AX共 32位)的相反數(shù)NOT AXNOT DXADD AX,1ADC DX,0例12:求5x 5矩陣的轉(zhuǎn)置兼程序格式識(shí)別DATA segmentA DW 20,50,90,30,51;DW 40,50,96,30,81DW 36,53,93,80,56DW 20,53,80
30、,36,51DW 26,68,93,30,58DATA endsSTACK segment PARA STACK STACKSTAPN DW 20 DUP(?)TOP LABEL WORDSTACK endsCode segmentAssume CS:Code,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,offset TopMOV SP,AXMOV CX,4;MOV BX,0;Loop1: push CX;MOV SI,2MOV DI,2Loop2: push ABXSIpush ABXDIpop
31、 ABXSIpop ABXDIADD SI,2ADD DI,2Loop Loop2;ADD BX,0CH;Pop CX;Loop Loop1;MOV AH,4CHInt 21Hcode endsend start例 13:以十六進(jìn)制顯示變量 bhout 中的一個(gè)字節(jié)MOV AL,bhout;(AL)=x 4x3x2x1y4y3y2y1Band AL,1111000B; (AL)=x 4x3x2x10000BMOV CL,4;設(shè)置移位次數(shù)SHR AL,CL;(AL)=0000 x 4x3x2x1BMOV BL,bhout;(BL)=x 4x3x2x1y4y3y2y1BAnd BL,0000111
32、1B; (BL)=0000y 4y3y2y1BMOV CX,2;設(shè)置循環(huán)次數(shù)(顯示兩個(gè)字符)MOV BH,AL(BH)=0000 x4x3x2x1Bpbh1: CMP BH,10;JB pbh2; (BH)10 時(shí)轉(zhuǎn)移ADD BH,37H數(shù)字 AiASCII 碼JMP pbh3pbh2: ADD BH,30H數(shù)字 0XASCII 碼pbh3: MOV AH,02;帶21H號(hào)程序的第2號(hào)MOV DK,BH被顯示字符的ASCII碼INT 21H; 調(diào)用DOS的第21H號(hào)程序MOV BH,BL;(BH)=0000yy3y2y1B 下一次被顯示 Loop pbh1例14:將BX中存儲(chǔ)的數(shù)以十六進(jìn)制顯示
33、出來MOV CX,1dPUSH CXMOV CX,10dPUSH CXMOV CX,100dPUSH CXMOV CX,1000dPUSH CXMOV CX,10000dPUSH CXMOV CX,5;循環(huán) 5次S: POP BP;(BP) J除數(shù)(10000,1000,1000,10,1)MOV AX,BX; (BX)/(BX) 商DX 余數(shù)ALMOV DX,0DIV BPMOV BX,X;remainder to BXMOV DL,AL;quotient to DLADD DL,30Hconvert to ASCIIMOV AH,02INT 21hLoop S例15:揚(yáng)聲器發(fā)聲控制程序(61H號(hào)端口可認(rèn)為是一個(gè)控制端口)端口bb6 bs b4 b3 b bb061HX0f1控制其他設(shè)備的控制位J約定該位取0時(shí)關(guān)閉2號(hào)定時(shí)器該位是揚(yáng)聲器的開關(guān)(1:打開0 :關(guān)閉)code segme nt代碼段開始mai n proc far主過程開始assume cs:code,ds:code代碼段和數(shù)據(jù)段重合org 100h讓下列可執(zhí)行命令從100h處開始存儲(chǔ)Start: MOV dx,100循環(huán)次數(shù)In AL,61H輸入端口的初始信息and AL,11111100B使bi= bo=0 (關(guān)閉揚(yáng)聲器)Sound:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 彩色繪畫藝術(shù)畢業(yè)答辯演示模板
- 預(yù)防各類詐騙
- 直播策劃與運(yùn)營實(shí)務(wù)(第二版)教案 項(xiàng)目四任務(wù)二、主播形象設(shè)計(jì)
- (高清版)DB12 046.102-2011 產(chǎn)品單位產(chǎn)量綜合能耗計(jì)算方法及限額 第102部分:汽車輪胎
- 課件:《馬克思主義基本原理概論》第四章 資本主義的本質(zhì)及規(guī)律
- 房產(chǎn)行業(yè)智慧物業(yè)管理平臺(tái)建設(shè)方案
- 2025中介服務(wù)合同
- 電商創(chuàng)業(yè)扶持政策解讀及實(shí)戰(zhàn)指南
- 輸血不良反應(yīng)處理流程
- 2025經(jīng)銷有限公司 年度合同樣本(甲)
- 社會(huì)保障學(xué)(全套課件617P)
- 移植免疫中山大學(xué)免疫學(xué)課件
- 醫(yī)院清潔消毒與滅菌課件
- 《博弈論》最完整版課件(加專題研究)
- 關(guān)渡小學(xué)2020校本研修領(lǐng)導(dǎo)小組及相關(guān)制度
- 三次函數(shù)的圖像和性質(zhì)用
- 紙板線設(shè)備基礎(chǔ)知識(shí)培訓(xùn)53
- 2022年四川省成都市郫都區(qū)嘉祥外國語學(xué)校八年級下學(xué)期期末語文試卷
- 卓越領(lǐng)導(dǎo)力訓(xùn)練
- 眾智smartgenHAT600系列雙電源自動(dòng)切換控制器說明書
- 湖南省惡性腫瘤門診放化療定點(diǎn)醫(yī)療機(jī)構(gòu)申請表
評論
0/150
提交評論