版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
匯編語言程序設計姓名:陳少軍電話mail:mcc@QQ:545373402
匯編語言程序設計前言編程之道(TheTaoOfProgramming)Book1--TheSilentVoid第一篇靜寂的空宇Thusspakethemasterprogrammer:
編程大師如是說:"Whenyouhavelearnedtosnatchtheerrorcodefromthetrapframe,itwillbetimeforyoutoleave."
編程大師如是說:“當你有本事奪走我手中的這塊水晶石時,就是你出師的時候了?!本幊讨?/p>
1.1Somethingmysteriousisformed,borninthesilentvoid.Waitingaloneandunmoving,itisatoncestillandyetinconstantmotion.Itisthesourceofallprograms.Idonotknowitsname,soIwillcallittheTaoofProgramming.
在靜寂的空宇里,一種神奇的物質形成并誕生了。它立刻便靜止,獨自守候著,毫無動靜,然而又處于永恒的運動之中。它是所有程序的源頭,我不知道它的名字,所以我將稱它為編程之道。IftheTaoisgreat,thentheoperatingsystemisgreat.Iftheoperatingsystemisgreat,thenthecompilerisgreat.Ifthecompilerisgreater,thentheapplicationsisgreat.Theuserispleasedandthereisharmonyintheworld.如果此道是完美的,那么操作系統(tǒng)就是完美的;如果操作系統(tǒng)是完美的,那么編譯程序就是完美的;如果編譯程序是完美的,那么應用程序就是完美的。所以用戶心滿意足,整個世界因此和諧。TheTaoofProgrammingflowsfarawayandreturnsonthewindofmorning.編程之道流逝遠去,又乘著晨風而歸。編程之道1.2TheTaogavebirthtomachinelanguage.Machinelanguagegavebirthtotheassembler.此道產(chǎn)生了機器語言,機器語言又產(chǎn)生匯編語言。。
Theassemblergavebirthtothecompiler.Nowtherearetenthousandlanguages.匯編語言產(chǎn)生了編譯程序,如今有了上萬種的語言。Eachlanguagehasitspurpose,howeverhumble.EachlanguageexpressestheYinandYangofsoftware.EachlanguagehasitsplacewithintheTao.不論多么的微不足道,每種語言都有他自己的目的,每種語言都表達了軟件的陰陽兩極。每種語言都各得其道。ButdonotprograminCOBOLifyoucanavoidit.但是,應盡量避免用COBOL語言編寫程序。編程之道1.3InthebeginningwastheTao.TheTaogavebirthtoSpaceandTime.Therefore,SpaceandTimearetheYinandYangofprogramming.道之初,帶來了空間和時間,所以,空間和時間是編程的陰陽兩極。ProgrammersthatdonotcomprehendtheTaoarealwaysrunningoutoftimeandspacefortheirprograms.ProgrammersthatcomprehendtheTaoalwayshaveenoughtimeandspacetoaccomplishtheirgoals.
不懂編程之道的編程者常常把空間和時間消耗殆盡,得道的編程者則總是有足夠的空間和時間去完成編程任務。Howcoulditbeotherwise?除此之外,難道還有其它的情形嗎?編程之道1.4ThewiseprogrammeristoldabouttheTaoandfollowsit.TheaverageprogrammeristoldabouttheTaoandsearchesforit.ThefoolishprogrammeristoldabouttheTaoandlaughsatit.精明的編程者聽說了此道,并遵循它;普通的編程者聽說了此道,并尋覓它;愚蠢的編程者聽說了此道,卻嘲笑它。
Ifitwerenotforlaughter,therewouldbenoTao.要不是因為有嘲笑,道也就不復存在了。Thehighestsoundsarethehardesttohear.Goingforwardisawaytoretreat.Greatertalentshowsitselflateinlife.Evenaperfectprogramstillhasbugs.最高的聲音最難被聽見。前進也是一種倒退。大器晚成。即使是一個完美的程序也仍然會有隱患。
計算機語言的發(fā)展機器語言FORTRANBASICCOBOLPASCALC/C++JAVA...匯編語言高級語言匯編語言的特點面向機器的低級語言,通常是為特定的計算機或計算機系列專門設計的。保持了機器語言的優(yōu)點,具有直接和簡捷的特點??捎行У卦L問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等。目標代碼簡短,占用內存少,執(zhí)行速度快,是高效的程序設計語言。經(jīng)常與高級語言配合使用,應用十分廣泛。例1
編程實現(xiàn)c=a+b,并在屏幕上顯示出結果。#include"stdafx.h“#include"stdio.h"int
main(int
argc,char*argv[]){
int
a,b,c;a=1;b=2;c=a+b;
printf(“c=%d\n",c);return0;}編譯后的目標文件達到3.59KB使用匯編編寫相應功能的程序datasegmentadb?bdb?cdb?stringdb'c=$'dataendscodesegmentmainprocfarassumecs:code,ds:data,es:datastart:pushdssubax,axpushax
mov
ax,data
mov
ds,ax
mov
es,ax
mova,1
movb,2mov
c,almov
al,aaddal,bleadx,string
movah,09
int21haddc,30h
mov
dl,c
movah,2
int21h
movdl,0ah
int21h
movdl,0dh
int21hretmainendpcodeendsendstart匯編后的目標文件只有208字節(jié)匯編語言的應用系統(tǒng)程序、效率代碼、I/O驅動程序70%以上的系統(tǒng)軟件是用匯編語言編寫的。某些快速處理、位處理、訪問硬件設備等高效程序是用匯編語言編寫的。高級繪圖程序、視頻游戲程序一般是用匯編語言編寫的。教師建議目標:了解匯編語言的特性及其編程技術,建立起“機器”和“程序”、“空間”和“時間”的概念。建議:充分注意“匯編”課實踐性強的特點,多讀程序,多寫程序,多上機調試程序熟悉PC機的編程結構,掌握匯編語言及其程序設計的基本概念、方法和技巧。參考資料1.80X86匯編語言程序設計 沈美明溫冬嬋清華大學出版社2.IBMPC匯編語言與程序設計
PETERABEL編著 第4版清華大學出版社.PRENTICEHALL
第5版人民郵電出版社3.IBMPC匯編語言與程序設計例題習題集溫冬嬋沈美明清華大學出版社教學計劃第1章 {3課時}第2章 {3課時}面向數(shù)據(jù)處理的程序設計教學組織簡單數(shù)據(jù)處理(3) {9+3課時}復雜數(shù)據(jù)處理(3、5) {9+3課時}基本輸入輸出(3、8、5) {6課時}匯編語言程序格式(4) {3課時}子程序設計(3、6) {6課時}高級匯編技術(3、7) {3+3課時}覆蓋章節(jié)1、2、3、4、5、6、7教學方式任務驅動的教學法提出問題設計解決方法畫出流程圖編寫程序運行調試程序測試設計總結相關指令學習布置作業(yè)匯編語言程序設計第1章基礎知識第1章基礎知識數(shù)制數(shù)制之間的轉換運算數(shù)和字符的表示預備知識存儲容量1K=1024=210
1M=1024K=220
1G=1024M=230
1T=1024G=240
1個二進制位:bit(比特)8個二進制位:Byte(字節(jié))1Byte=8bit2個字節(jié):Word(字)1Word=2Byte=16bit1.數(shù)制二進制:基數(shù)為2,逢二進一
11012=1×23+1×22+1×20=1310十六進制:基數(shù)為16,逢十六進一
9187=9×163+1×162+8×161+7×160數(shù)制基數(shù)數(shù)碼
二進制Binary20,1
八進制Octal80,1,2,3,4,5,6,7
十進制Decimal100,1,2,3,4,5,6,7,8,9
十六進制Hexadecimal160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F2.數(shù)制之間的轉換二進制十進制十六進制二進制十六進制
001101011011111135BF∴0011,0101,1011,1111B=35BFHA19C1010000110011100∴A19CH=1010,0001,1001,1100B二進制十進制1011B=23+21+20=11D
降冪法(除法)例:27D=?B2711331--
--2n168421
11011
∴27D=11011B
十六進制十進制
BF3CH=11163+15162+3161+12160
=48956D
降冪法除法
例:399D=?H39914315399/16→24/16→1/16→0---↓↓↓16n256161F81
18F
∴399D=18FH3.運算(算術運算和邏輯運算)算術運算二進制數(shù):逢二進一借一為二加法規(guī)則乘法規(guī)則
0+0=0 00=0 0+1=1 01=0 1+0=1 10=0 1+1=0(進位1) 11=1十六進制數(shù):逢十六進一借一為十六 05C3H 3D25H+) 3D25H -) 05C3H 42E8H 3762H邏輯運算(按位操作)“與”運算(AND)“或”運算(OR)
ABABABAB
000000010011100101111111“非”運算(NOT)
“異或”運算(XOR)
AA
ABAB0100010
011101110例:X=00FFHY=5555H,求Z=X
Y=?
X=0000000011111111B
Y=01010101
0101
0101BZ=0101010110101010BZ=55AAH4.信息在計算機中的表示無符號數(shù)的表示帶符號數(shù)的表示字符的表示其它信息的表示無符號數(shù)的表示假設機器字長為8位00000000~111111110~255=(28-1)假設機器字長為16位0000000000000000~111111111111110~65535=(216-1)假設機器字長為32位0~232-1假設機器字長為64位0~264-1帶符號數(shù)的表示假設機器字長為8位:假設機器字長為16位:符號位=0表示正數(shù)=1表示負數(shù)
76543210符號位
數(shù)值位H.O.NibbleL.O.Nibble符號位
數(shù)值位1514131211109876543210H.O.ByteL.O.Byte帶符號數(shù)的常用表示法原碼表示法:符號+絕對值例:n=8bit[+3]原碼
=0000,0011=03H[-3]原碼
=1000,0011=83H[+0]原碼
=0000,0000=00H[-0]原碼
=1000,0000=80H0的表示不惟一反碼表示法:正數(shù)的反碼同原碼,負數(shù)的反碼數(shù)值位與原碼相反例:n=8bit[+5]反碼
=0000,0101=05H[-5]反碼
=1111,1010=FAH[+0]反碼
=0000,0000=00H[-0]反碼
=1111,1111=FFH0的表示不惟一補碼表示法補碼(Two’sComplement)表示法:正數(shù)的補碼:同原碼負數(shù)的補碼:(1)寫出與該負數(shù)相對應的正數(shù)的補碼(2)按位求反(3)末位加一例:機器字長8位,[-46]補碼=?[46]補碼=001011101101000111010010=D2H機器字長16位,[-46]補碼=FFD2H[+0]補碼=000000001111111100000000=[-0]補碼0的表示惟一按位求反末位加一按位求反末位加一十進制二進制十六進制十進制十六進制
n=8n=16+127011111117F+327677FFF+126011111107E+327667FFE......……...+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE......……...-1261000001082-327668002-1271000000181-327678001-1281000000080-327688000n位二進制補碼的表示范圍:
-2n-1≤N≤2n-1-1無符號整數(shù)的表示范圍:
0≤N≤2n-1
補碼的加法和減法:求補運算:對一個二進制數(shù)按位求反、末位加一[X]補碼[-X]補碼[X]補碼加法規(guī)則:[X+Y]補碼=[X]補碼+[Y]補碼減法規(guī)則:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 維生素c課程設計
- 蓋板零件課程設計
- 保險行業(yè)會計職責總結
- 海底動物創(chuàng)意課程設計
- 咨詢行業(yè)的營銷工作總結
- 火葬場衛(wèi)生整治工作總結
- 2024年西雙版納職業(yè)技術學院單招職業(yè)適應性測試題庫含答案
- 水務領域數(shù)字經(jīng)濟發(fā)展的研究計劃
- 2024年認識圖形二教案
- 2024年秋天的信教案模板
- 《紅色家書》讀書分享會主題班會課件
- 2025年廣東省春季高考數(shù)學仿真模擬試卷試題(含答案解析+答題卡)
- 新媒體運營工作年終總結
- 【MOOC】電子技術-北京科技大學 中國大學慕課MOOC答案
- 米酒釀造工藝
- 點式高層住宅工程施工組織設計
- 0-3歲嬰幼兒心理發(fā)展知到智慧樹期末考試答案題庫2024年秋杭州師范大學
- 2024年1月福建省普通高中學業(yè)水平合格性考試化學試題(解析版)
- 齊白石介紹課件
- 窺見中華文明之光- 高中語文統(tǒng)編版(2022)必修下冊第一單元整體教學設計
- 2024年安徽省公務員錄用考試《行測》真題及解析
評論
0/150
提交評論