版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
會計學1第匯編語言程序設計4.1.1匯編語言簡介匯編語言是采用助記符標識的指令的程序設計語言。其中助記符標識是二進制指令的形象標記。由于現(xiàn)在采用的計算機都是二進制的,其所能執(zhí)行的每一條指令都對應一組二進制代碼。采用二進制代碼來表示指令和數(shù)據(jù)的語言為機器語言,它是唯一能被計算機識別的語言。然而這種語言很難記憶和辨認,給程序設計工作帶來很大麻煩。為了容易理解和記憶這些計算機的指令,人們用一些英文單詞和字符等作為助記符來描述每一條二進制指令的功能。用助記符標識的指令就是計算機的匯編語言,匯編語言和機器語言是一一對應的。采用匯編語言編寫的程序,每條指令的含義一目了然,這給單片機程序的編寫、閱讀和修改帶來很大方便。而且用匯編語言編寫的程序代碼少,執(zhí)行速度快,每條指令的執(zhí)行時間完全確定。因此,在最初的單片機應用系統(tǒng)中,主要是用匯編語言來編寫程序。第2頁/共21頁第1頁/共21頁4.1.2匯編語言程序設計步驟使用匯編語言進行計算機或者單片機程序設計的流程圖,如圖所示,一般可以分為以下幾個步驟:第3頁/共21頁第2頁/共21頁4.1.3匯編語言程序實例首先,為了讓大家認識一下匯編語言的結構,這里舉一個匯編語言的例子。程序示例如下。
ORG 0200H ;匯編程序起始指令
MOV A, 32H ;將單字節(jié)數(shù)據(jù)存入累加器A中
MOV B, #100 ;分離出百位數(shù)
DIV AB MOV R5, A ;百位數(shù)送入寄存器R5 XCH A, B ;余數(shù)存入累加器A中
MOV B, #10 ;分離出十位和個位
DIV AB SWAP A ;十位存入高字節(jié)
ADD A, B ;低位存入低字節(jié)中
MOV R6, A END ;第4頁/共21頁第3頁/共21頁4.2偽指令偽指令是為匯編程序提供某種信息的指令。偽指令不能命令CPU執(zhí)行某種操作,也沒有對應的機器代碼,而51系列單片機的指令能使單片機的CPU執(zhí)行某種操作,能生成對應的機器代碼。51系列單片機匯編程序常用的偽指令有如下幾類。第5頁/共21頁第4頁/共21頁4.2.1匯編程序起始偽指令ORG匯編程序起始偽指令ORG主要用于規(guī)定匯編程序塊或數(shù)據(jù)塊存放的起始地址,它的使用格式如下:[標號:] ORG 16位地址示例如下:ORG 0200HSTART: MOV A, #45H……第6頁/共21頁第5頁/共21頁4.2.2匯編程序結束偽指令END匯編程序結束偽指令END是匯編語言源程序的結束標志。END偽指令的使用格式是:[標號:] END [表達式]在程序中,END以后所寫的任何指令,匯編程序都不予以處理。一個源程序只能有一個END偽指令。對于同時包含有主程序和子程序的匯編源程序中,同樣也只能有一個END偽指令。第7頁/共21頁第6頁/共21頁4.2.3等值偽指令EQU(或=)等值偽指令EQU是將一個數(shù)或者特定的匯編符號賦予規(guī)定的字符名稱。它的使用格式如下:字符名稱 EQU 數(shù)據(jù)或匯編符號或者字符名稱 = 數(shù)據(jù)或匯編符號用EQU指令賦值以后的字符名稱可以用作數(shù)據(jù)地址、代碼地址、位地址或者當作一個立即數(shù)來使用。因此,給字符名稱所賦的值可以是8位數(shù),也可以是16位數(shù)。需要注意的是,這里使用的“字符名稱”不是標號,不能用“:”來做分隔符。第8頁/共21頁第7頁/共21頁4.2.4數(shù)據(jù)地址賦值偽指令DATA數(shù)據(jù)地址賦值偽指令DATA是將數(shù)據(jù)地址或代碼地址賦予規(guī)定的字符名稱。其使用格式如下:字符名稱 DATA 表達式DATA偽指令的功能與EQU有些相似,使用時要注意它們有以下區(qū)別:EQU偽指令必須先定義后使用,而DATA偽指令則無此限制;EQU偽指令可以把一個匯編符號賦給一個字符名稱,而DATA偽指令則不能;DATA偽指令可將一個表達式的值賦給一個字符變量,所定義的字符變量也可以出現(xiàn)在表達式中,而EQU定義的字符則不能這樣使用。DATA偽指令在程序中常用來定義數(shù)據(jù)地址。第9頁/共21頁第8頁/共21頁4.2.5定義字節(jié)偽指令DB定義字節(jié)偽指令DB是從標號指定的地址單元開始,將數(shù)據(jù)表中的字節(jié)數(shù)據(jù)按順序依次保存。其使用格式如下:[標號:] DB 8位字節(jié)數(shù)據(jù)表這里的數(shù)據(jù)表可以是一個或多個字節(jié)數(shù)據(jù)、字符串或表達式,各項數(shù)據(jù)用“,”分隔,一個數(shù)據(jù)項占一個存儲單元。定義字節(jié)偽指令DB的使用示例代碼如下:ORG 1000HDATA1: DB 11H,34H,60,90HDATA2: DB 111B,’A’第10頁/共21頁第9頁/共21頁4.2.6定義字偽指令DW定義字偽指令DW是從標號指定的地址單元開始,將數(shù)據(jù)表中的字數(shù)據(jù)按從左到右的順序依次保存。其使用的格式為:[標號:] DW 16位字數(shù)據(jù)表DW的功能和DB相類似,需要注意的是:16位數(shù)據(jù)要占用兩個單元的存儲器,其中,高8位數(shù)據(jù)存入低地址字節(jié),低8位數(shù)據(jù)存入高地址字節(jié)。定義字偽指令DW的使用示例代碼如下:ORG 1000HDATA1: DW 13ABH, 4CH第11頁/共21頁第10頁/共21頁4.2.7定義空間偽指令DS定義空間偽指令DS是從標號指定的地址單元開始,保留若干個存儲單元作為備用的空間。其中,保留的數(shù)量由表達式指定。其使用格式如下:[標號:] DS 表達式定義空間偽指令DS的使用示例代碼如下:ORG 1000HBUF: DS 07H該段偽指令經匯編以后,從地址1000H開始保留7個內存單元,然后從1007H開始才可以進行其他操作。第12頁/共21頁第11頁/共21頁4.2.8位地址符號偽指令BIT位地址符號偽指令BIT,主要用于對位地址賦予所規(guī)定的字符名稱。其使用格式如下:字符名稱 BIT 位地址位地址符號偽指令BIT的使用示例代碼如下:P20 BIT P2.0P21 BIT P2.1該段偽指令經匯編以后,將位地址P2.0和P2.1賦給P20和P21,此后可以使用P20和P21當作位地址來代替P2.0和P2.1。第13頁/共21頁第12頁/共21頁4.3匯編語言程序的格式匯編語言程序的每一句程序一般由四部分組成,即標號、操作碼、操作數(shù)和注釋。每個部分之間要用分隔符隔開,分隔符可以采用空格、冒號“:”、分號“;”。其使用格式如下:標號: 操作碼 操作數(shù) ;注釋一般對于一行匯編程序來說,只有操作碼是必不可少的,其他視情況而定可有可無。標號由8個或8個以下的字符或數(shù)字構成,但第一個必須是字母。除字母和數(shù)字外,在標號中還可以使用下劃線符號“_”。各種特殊功能寄存器名、各個位地址記憶符、各種偽指令等都不能用作標號。以下是一些合法的標號:P10、DELY、DATA0等。以下的字符串不能用作標號:7P、P+A、MOV等。第14頁/共21頁第13頁/共21頁4.4源程序的匯編源程序的匯編是將匯編語言源程序轉換為用機器碼表示的目標程序的過程。其中能完成該轉換功能的程序稱為匯編程序。匯編常用的方法有兩種:一種是手工匯編,另一種是機器匯編。手工匯編是把程序用助記符指令寫出后,然后人為查找指令代碼表,逐個把助記符指令翻譯成機器碼,然后把得到的機器碼程序(以十六進制形式)輸入到單片機開發(fā)軟件中,并進行調試。由于手工匯編是按絕對地址進行定位的,所以,對于偏移量的計算和程序的修改有諸多不便。而且手工匯編十分復雜,很費時間,也很容易出錯,因此,一般只有程序較小或工具所限時才使用。機器匯編是在計算機上,使用匯編程序將匯編語言源程序轉換為計算機能識別的機器碼表示的目標程序。匯編工作由計算機自動完成,生成的目標程序經調試無誤后,再固化到單片機的程序存儲器中。第15頁/共21頁第14頁/共21頁4.5KeilμVison3中運行匯編語言實例這里首先通過一個簡單的實例,來介紹如何使用μVison3進行單片機匯編程序的開發(fā)。第16頁/共21頁第15頁/共21頁4.5.1創(chuàng)建項目首先,雙擊啟動μVison3集成開發(fā)環(huán)境,開始創(chuàng)建項目,操作步驟如下。第17頁/共21頁第16頁/共21頁4.5.2創(chuàng)建源文件項目建立完畢后,現(xiàn)在開始進行源文件的設計,這里便涉及到項目的核心。具體的操作步驟如下所述。第18頁/共21頁第17頁/共21頁4.5.3編譯項目項目及源文件建立完畢后便可以編譯項目了。選擇“Project”→“Buildtarget”命令,即可編譯,如果程序無誤,則在輸出窗口中顯示編譯結果,如圖所示。第18頁/共21頁4.5.4仿真調試項目建立并編譯通過后,在下載到單片機硬件中之前,一般需要進行仿真調試,確保程序的執(zhí)行完全符合要求。μVison3的集成開發(fā)環(huán)境提供了完善的項目仿真和調試工具,下面就介紹如何使用μVison3來進行項目的仿真調試。項目仿真調試之前需要確保該項目完全通過編譯。仿真調試的步驟如下所述:(1)選擇“Debug”→“Start/StopDebugSession”命令,此時,μVison3進入仿真調試模式。界面的菜單欄和工具欄都相應的進行了變化。(2)使用單步執(zhí)行的方式運行程序。每按F11鍵一次,程序執(zhí)行一條指令。用戶可以看到程序執(zhí)行時,單片機的各個資源和寄存器值是如何變化的。(3)當程序執(zhí)行完畢的時候,在寄存器顯示窗口中可以看到程序仿真的結果,如圖所示。乘法運算的結果保存在寄存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2017年寒假綜合實踐作業(yè)總結
- 將精神撫慰金列入刑事附帶民事訴訟
- 做幸福教師演講稿(4篇)
- 2025年文旅小鎮(zhèn)合作協(xié)議書
- 停車場地出租合同(2篇)
- 2025年CBZ-5-苯基-L-半胱氨酸項目發(fā)展計劃
- 個人車輛出租合同
- 2025年動力調諧陀螺平臺項目發(fā)展計劃
- 個人大型車庫出租合同
- 車輛質押合同范本
- GB/T 397-2009煉焦用煤技術條件
- GB/T 13384-2008機電產品包裝通用技術條件
- 《中考體育項目跳繩》教案
- 增服葉酸預防神經管缺陷理論知識考核試題及答案
- 新業(yè)娛樂安全評價報告
- 醫(yī)保工作自查表
- 小學-英語-湘少版-01-Unit1-What-does-she-look-like課件
- 單證管理崗工作總結與計劃
- 安全安全隱患整改通知單及回復
- 國有檢驗檢測機構員工激勵模式探索
- 采購部年終總結計劃PPT模板
評論
0/150
提交評論