匯編語言知識點_第1頁
匯編語言知識點_第2頁
匯編語言知識點_第3頁
匯編語言知識點_第4頁
匯編語言知識點_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

十進制與二進制之間的轉換〔P2〕降冪法除法十進制與六進制之間的轉換〔P5〕降冪法除法補碼表示:正數:采用符號—絕對值法負數:先寫出對應的正數的補碼表示,然后再將其按位數求反,最后末尾加1,就可以得到負數的補碼表示補嗎運算:二進制數按位求反后在末尾加1第二章存儲容量1K=1024=210〔〕1M=1024K=220〔〕1G=1024M=230〔〕1個二進制位:〔比特〕8個二進制位:〔字節〕1=82個字節:1〔字〕1=2=16存儲單元地址與內容1.存儲器以字節〔8〕為編程單位2.每個字節單元都有唯一的地址編碼3.地址用無符號整數來表示〔編程用十六進制表示〕4.一個字要占用相繼的兩個字節5.低位字節存入低地址,高位字節存入高地址6.字單元地址用它的低地址來表示7.機器以偶地址訪問〔讀/寫〕存儲器物理地址=16"段地址+偏移地址存儲器的分段:20根地址線:地址范圍00000H~ 〔1〕機器字長16位:僅能表示地址范圍0000H~ 〔64)小段:每16個字節為一小段,共有64K個小段段起始地址:小段首地址段的大小:64K范圍內的任意字節存儲器的邏輯分段優點:允許程序在存儲器內重定位;允許實模式程序在保護模式下運行;有利于程序與數據的別離。

中央處理器8086/8088存放器組通用存放器數據存放器:,,,變址存放器:、指針存放器:、控制存放器:、段存放器:、、、標志存放器(/〕條件標志位:溢出標志符號標志零標志進位標志輔助進位標志奇偶標志控制標志位:方向標志中斷標志陷阱標志存放器與存儲器的比擬:存放器:在內部;訪問速度快;容量小,本錢高;用名字表示;沒用地址存儲器:在外部;訪問速度慢;容量大,本錢低;用地址表示;地址可用各種方式形成第三章尋址方式操作數所在位置存儲器的代碼段物理地址〔〕存放器無〔唯一〕存儲器段地址+位移量格式注意間接尋存儲器址存儲器相對尋:[2000H]尋址方式操作數所在位置存儲器的代碼段物理地址〔〕存放器無〔唯一〕存儲器段地址+位移量格式注意間接尋存儲器址存儲器相對尋:[2000H],[2000H]段地址,[]+基址:[]/變址只能用源操作數操作數與源操作數的長度一致字節存放器只有不能用指令改變,源操作數與目的操作數的字長一致默認的段地址存儲在中遇到的段地址存儲在可以使用段跨越前綴可用的存放器不允許使用、存放偏移地址()與的字長一致使用時,默認的數據段是,其余都是段地址[]+基址 :[]可以使用段跨越前綴址/變址+位移量,[]存儲器段地址+基址+變址,[],[][]可以使用段跨越前綴基址變址存儲器段地址+基址+變址+位移量[][][]可以使用段跨越前綴數據傳送扌孑令傳送指令內部存放器之間的數據傳送指令格式:,執行操作:()()注意:*、不能同時為段存放器,"、不能同時為存儲單元*立即數不能直接送段存放器 ,2000H"不能是立即數與*不影響標志位交換指令指令格式:1,2執行操作:(1)?(2)例:,[],注意:*兩個操作數字長一致兩個操作數都不能是段存放器兩個操作數都不能是立即數兩個操作數不能同時是存儲單元可以采用除立即尋址方式外的任何一種尋址方式。不影響標志位地址傳送指令、、有效地址送存放器指令:,執行操作:()指針送存放器與指令:,執行操作:()()()(2)相繼二字?存放器、指針送存放器與指令:,執行操作:()()()(2)相繼二字?存放器、注意:*源操作數必須為存儲器操作數目的操作數必須是一個16位通用存放器,不能是段存放器

*源操作數可以是除立即尋址與存放器尋址以外的任意一種尋址方式*不影響標志位堆棧操作指令、1.進棧指令:執行操作:()-()-2 (()+1,())-()出棧指令:執行操作:()(()+1,()) ()()+2堆棧:‘先進后出'的存儲區,段地址存放在中,在任何時候都指向棧頂,進出棧后自動修改。注意: *堆棧操作必須以字為單位。*不影響標志位*不能用立即尋址方式 1234H '*不能是 ’…… ;其間用到、、;后進先出…… ;其間用到、、;后進先出標志操作指令標志傳送指令:1.標志送指令: 執行操作:()(的低字節)2送標志存放器指令:執行操作:(的低字節)()注意: *不影響標志位*影響、、、、標志進棧指令:執行操作:()()-2 (()+1,())()標志出棧指令:執行操作:()(()+1,()) ()()+2注意:與經常一起聯用,完成保護、維護標志存放器的內容或改變標志位的值。標志位操作指令:清進位標志指令J0置進位標志指令J1進位標志取反指令?—清方向標志指令J0置方向標志指令—1清中斷允許標志指令—0置中斷允許標志指令—1注意:*只影響本指令指定的標志加減法指令:加法指令:,執行操作: ()()+()帶進位加法指令:,執行操作: ()()+()+加1指令:執行操作:()()+1注意:*除指令不影響標志外,均對狀態標志位有影響。各加法指令對條件標志位的影響:1,結果為負1,結果為01,與的最高有效位有向高位的進位1,兩個操作數符號一樣,而結果符號與之相反位表示無符號數相加的溢出。位表示帶符號數相加的溢出。減法指令:,執行操作:()()-()帶借位減法指令:,執行操作:()()-()-減1指令:執行操作:()()-1求補指令:執行操作:()-()比擬指令:1,2執行操作:(1)-(2)各減法指令對條件標志位〔〕的影響:1,被減數的最高有效位有向高位的借位或1減數轉換為加法運算時無進位1兩個操作數符號相反,而結果的符號與減數一樣位表示無符號數減法的溢出。位表示帶符號數減法的溢出。指令對的影響0,操作數為01,操作數為-128(字節運算)或-32727(字運算乘除運算指令無符號數乘法指令:帶符號數乘法指令:執行操作:字節操作數()()*()字操作數(,)()*()注意:*目的操作數必須是累加器*()為隱含的乘數存放器。*()為隱含的乘積存放器。*不能為立即數。*除與外,對條件標志位無乘法指令對的影響:指令:=00乘積的高一半為零11否那么指令:=00乘積的高一半是低一半的符號擴展11否那么例:()=16A5H,()=0611H(,)()*()(,)()*()16A5*0611=008955()=0089H ()=55H 1⑵;()-()*();A5T1P5B*11=060BPF9F5;()=0F9F5H1無符號數除法指令:帶符號數除法指令:執行操作:字節操作()-()/()的商字操作()-(,)/()的商注意:* ()為隱含的被除數存放器。無符號數除法指令:帶符號數除法指令:執行操作:字節操作()-()/()的商字操作()-(,)/()的商注意:* ()為隱含的被除數存放器。* ()為隱含的商存放器。*不能為立即數。類型轉換指令執行操作:那么()=()-()/()的余數()-(,)/()的余數* ()為隱含的余數存放器。*對所有條件標志位均無定義。假設()的最高有效位為0,那么()=00H,假設()的最高有效位為1,執行操作:假設()的最高有效位為0,那么()=0000H,假設()的最高有效位為1,那么()=例:()=045H;()=0045H ;()=0()=045H注意:*無操作數指令 *隱含對或進展符號擴展*不影響條件標志位邏輯運算指令邏輯非指令: *不能為立即數*不影響標志位00***無定義*不影響標志位00***無定義邏輯與扌旨令:,執行操作: ()-()邏輯或指令:異或指令:測試指令:執行操作:執行操作:執行操作:()-()U()()-()U()()-()"()1,2執行操作:(1)U(2)移位指令邏輯左移 ,邏輯右移 ,算術左移算術右移循環左移0移位指令邏輯左移 ,邏輯右移 ,算術左移算術右移循環左移07 TT~~CF,〔同邏輯左移〕循環右移帶進位循環左移帶進位循環右移注意:*>1,=移入的數值可用除立即數以外的任何尋址方式循環右移帶進位循環左移帶進位循環右移注意:*>1,=移入的數值可用除立即數以外的任何尋址方式1,,1, ;以為例條件標志位:時,最高有效位的值發生變化1時,最高有效位的值不變移位指令:、根據移位結果設置,無定義移位指令:循環移位指令:不影響、、控制轉移指令:? 無條件轉移指令? 條件轉移指令TOC\o"1-5"\h\z? 循環指令 、/、/子程序調用與返回指令 、中斷與中斷返回指令 、與轉移地址有關的尋址方式:

用來確定轉移指令及轉子指令的轉向地址

段內尋址 段內直接尋址段內間接尋址 []段間尋址段間直接尋址

段間間接尋址 []段間尋址無條件轉移指令:

段內直接短轉移:執行操作:()-()+8位位移量段內直接近轉移:執行操作:()-()+16位位移量段內間接轉移:執行操作:()-()段間直接遠轉移:執行操作:()-的段內偏移地址()-所在段的段地址

段間間接轉移:執行操作:()-()()-⑵注意:*不影響標志位條件轉移指令第7頁注意:*只能使用段內直接尋址的8位位移量*不影響標志位根據單個條件標志的設置情況轉移格式測試條件()=1()=0=1=0=1=0=1=0=1=0比擬兩個無符號數,并根據比擬結果轉移格式測試條件TOC\o"1-5"\h\z() =1> () =0< () V=1> () V=0*適用于地址或雙精度數低位字的比擬比擬兩個帶符號數,并根據比擬結果轉移*適用于帶符號數的比擬格式測試條件() "=1> () "=0< () (")V=1> () (")V=0測試的值為0那么轉移格式測試條件()=0循環指令注意:*中存放循環次數*只能使用段內直接尋址的8位位移量*不影響標志位執行步驟:(1)()J()-1〔2〕檢查是否滿足測試條件,如滿足那么()J()+8位位移量,實行循環;不滿足那么不變,退出循環循環指令:測試條件:()10

為零或相等時循環指令:()

測試條件:1且()10不為零或不相等時循環指令:()

測試條件:0且()10

例:求首地址為的M個字之與,結果存入,M串處理指令,0,2串處理指令? 串重復前綴執行操作:從串取指令:〔字節〕〔字〕字節操作:()T()),()T)±1字操作:()T()),()T)±2注意:*指令一般不與聯用*源串一般在數據段中〔允許使用段跨越前綴來修改〕,目的串必須在附加段中*不影響條件標志位

存入串指令:〔字節〕

〔字〕執行操作: 字節操作:(())?(),()?()±1字操作:(())?(),()T)±2串傳送指令:〔字節〕〔字〕例::[],:[]執行操作:⑴(())-(())字節操作:()T)±1,()T)±1字操作:()T)±2,()T)±2

方向標志0時用+,1時用-。

串掃描指令:〔字節〕〔字〕執行操作: 字節操作:()-(()),()T)±1字操作:()-(()),()T)±2串比擬指令:〔字節〕〔字〕執行操作:(1)(())-(())根據比擬結果置條件標志位:相等1;不等0⑵字節操作:()T)±1,()T)±1字操作:()T)±2,()T)±2(與/配合工作)執行操作:(1)如()=0那么退出,否那么轉(2)()()-1執行//重復(1)~(3):將數據段中的整串數據傳送到附加段中。源串〔數據段〕—目的串〔附加段〕

執行之前,應先做好:源串首地址〔末地址〕—目的串首地址〔末地址〕—串長度f建立方向標志(使0,使1)/(與與配合工作)執行操作:(1)如()=0或0(1)那么退出串操作,否那么轉(2)()T)-1執行/重復(1)~(3)例:從一個字符串中查找一個指定的字符,‘T',8

例:比擬兩個字符串,找出它們不相匹配的位置,1, 2, 8例:反向傳送,1+7,2+7,8第四章

標號與變量

〔1〕標號與變量都是標識符。標識符組成:字母,數字0~9,專用字符?.@_$

標識符的組成規那么:最大長度為31,第一個字符不能是數字,不區分字母的大

小寫,不能是匯編語言的保存字〔2〕標號與變量的異同:不同:

標號:用于匯編指令語句中,以冒號完畢,在代碼段中定義,經常在轉移指令或

指令

變量:用于偽指令語句中,不允許有冒號,在數據段或附加段中定義,經常在操

作數字段出現

一樣:都有三種屬性:段屬性、偏移屬性、類型屬性偽操作

是匯編程序對源程序進展匯編時處理的操作,完成處理器選擇、存儲模式定義、

數據定義、

存儲器分配、指示程序開場完畢等功能。處理器選擇偽操作 段定義偽操作程序開場與完畢偽操作 數據定義及存儲器分配偽操作表達式賦值偽操作 地址計數器與對準偽操作基數控制偽操作段定義偽操作;定義數據段;定義附加段;定義代碼段,;段地址?段存放器

說明:語句序列

段假定偽指令格式:段存放器名:段名〔這里只是一種指明,段存放器的實際值,必須在程

序中使用傳送指令來賦值,除外〕

數據定義及存儲器分配偽操作:[變量]助記符操作數[,操作數,…][;注釋]

助記符:例:10,4,10H,?100,1005,?偽操作:例:50(?)

表達式名表達式918[8]說明:1、2(表達式中的標號與變量要先定義,例如:)2、“=〞偽操作〔允許重復定義〕=7=1

數值回送操作符:、、、、

/變量/標號

功能:回送變量或標號的偏址/段址變量/標號/常數常數1246810-1-20變量功能:回送由定義的變量的單元數,其它情況回送1變量功能:*例:100(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論