版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
跟我一起學(xué)編程系列課程:第一篇匯編語(yǔ)言16位匯編
第三部分知識(shí)總結(jié)
第三部分匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)心靈雞湯程序員的工作是程序設(shè)計(jì)、編寫代碼、完成特定的功能需求,不是看視頻大部分時(shí)間是用來(lái)梳理需求,設(shè)計(jì)結(jié)構(gòu),算法,只需要小部分時(shí)間來(lái)寫代碼分析需求、設(shè)計(jì)結(jié)構(gòu)、偽代碼、流程圖、寫代碼多寫、多練、多調(diào)試,代碼量是衡量程序員技術(shù)水平的重要標(biāo)準(zhǔn)學(xué)習(xí)語(yǔ)法概念等基礎(chǔ)知識(shí)只需要很少時(shí)間,其他大量的時(shí)間是練習(xí)、練習(xí)、再練習(xí)養(yǎng)成良好的編碼習(xí)慣:標(biāo)號(hào)、變量名和注釋不要把自己累死,重要的是消化吸收,掌握原理,融會(huì)貫通欲速則不達(dá),系統(tǒng)化的學(xué)習(xí),打牢基礎(chǔ),然后才可以一馬平川,從橫馳騁1、匯編語(yǔ)言及程序設(shè)計(jì)1.語(yǔ)句的種類和格式指令語(yǔ)句:有對(duì)應(yīng)的機(jī)器碼偽指令語(yǔ)句:無(wú)對(duì)應(yīng)的機(jī)器碼,指示匯編程序如何匯編源程序,包括符號(hào)、變量、段的定義宏匯編中還有一種,宏指令語(yǔ)句(后面的課程再學(xué))指令語(yǔ)句[標(biāo)號(hào):]指令助記符[操作數(shù)[,操作數(shù)]]][;注釋]操作數(shù)可以為常數(shù)(數(shù)值表達(dá)式),寄存器(寄存器名),存儲(chǔ)器操作數(shù)(地址表達(dá)式)偽指令語(yǔ)句[名字]偽指令定義符[參數(shù),...參數(shù)][;注釋]偽指令定義符規(guī)定了偽指令的功能。參數(shù)的個(gè)數(shù)和類型由偽指令不同而不同。參數(shù)可以是常數(shù)(數(shù)值表達(dá)式),也可以是符號(hào)。名字有的偽指令可以缺省。2.數(shù)值表達(dá)式常數(shù):二進(jìn)制、十進(jìn)制、十六進(jìn)制、字符串算術(shù)運(yùn)算符:+、-、*、/、MOD關(guān)系運(yùn)算符:相等EQ不等NE小于LT大于GT·小于或等于LE、大于或等于GE邏輯運(yùn)算符:AND、OR、XOR、NOT、SHL、SHR操作符:HIGH高8位、LOW低8位、LENGTH、SIZE、OFFSET、SEG、TYPE、WIDTH、MASK運(yùn)算符和操作符的優(yōu)先級(jí):各種括號(hào)、操作符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符3.地址表達(dá)式:地址表達(dá)式表示存儲(chǔ)器操作數(shù)的地址。[VARW+BX+DI]2、變量和標(biāo)號(hào)變量和標(biāo)號(hào)分別代表存儲(chǔ)單元。變量表示存儲(chǔ)單元中存放的數(shù)值,標(biāo)號(hào)表示存儲(chǔ)單元中存放的指令代碼。1、數(shù)據(jù)定義語(yǔ)句格式:[變量名]數(shù)據(jù)定義符表達(dá)式[,表達(dá)式,...表達(dá)式] ;注釋例:VARB DB 3VARW DW -12345 DD ?2.重復(fù)操作符DUP定義數(shù)組,定義緩沖區(qū)的需要BUFFER DB8DUP(0)BUFFER DB0,0,0,0,0,0,0,01)變量和標(biāo)號(hào)的屬性(1)段值(2)偏移(3)類型:變量類型BYTEWORDDWORD標(biāo)號(hào)類型NEARFAR2.析值操作符SEG 變量名或標(biāo)號(hào)
段值OFFSET 變量名或標(biāo)號(hào)
偏移TYPE 變量名或標(biāo)號(hào)
返回變量或者標(biāo)號(hào)的類型LENGTH 變量名
操作符LENGTH返回利用DUP定義的數(shù)組中元素的個(gè)數(shù)SIZE 變量名
變量=(LENGTH變量)×(TYPE變量)3、屬性操作符(1)操作符PTR:指明操作數(shù)類型:BYTE,WORD,DWORD,NEAR,FAR(2)操作符THIS:類型與PTR一致,返回一個(gè)具有指定類型的存儲(chǔ)器操作數(shù),但不為該操作數(shù)分配存儲(chǔ)單元,返回存儲(chǔ)器操作數(shù)的段值和偏移就是下一個(gè)將分配的存儲(chǔ)單元的段值和偏移。MY_BYTEEQUTHISBYTE ;EQU是符號(hào)定義語(yǔ)句的定義符NY_WORDDW?4、偽指令和源程序通過(guò)符號(hào)定義語(yǔ)句,可以把常數(shù)、表達(dá)式等用符號(hào)表示。恰當(dāng)?shù)厥褂梅?hào)定義語(yǔ)句,不僅可以大大方便程序的書寫和閱讀,也有利于程序的調(diào)試和修改1.等價(jià)語(yǔ)句EQU格式:符號(hào)名EQU表達(dá)式(1)用符號(hào)來(lái)代表常數(shù)或者數(shù)值表達(dá)式COUNT EQU100 ;符號(hào)COUNT代表常數(shù)100(2)用符號(hào)表示一個(gè)字符串HELLOEQU'HELLOWORD'(3)重新定義關(guān)鍵字或助記符MOVEEQUMOV ;MOVE代替MOVCOUNTEQUCX ;COUNT代替CX(4)定義存儲(chǔ)器操作數(shù)符號(hào)VARW EQU THIS WORD ;VARW的類型是字2.等號(hào)語(yǔ)句(=):用符號(hào)來(lái)表示一個(gè)常數(shù)符號(hào)名=表達(dá)式3.定義符號(hào)名語(yǔ)句格式:符號(hào)名 LABEL 類型類型有:BYTE、WORD、DWORD、NEAR、FAR等。功能是定義有符號(hào)名指定的符號(hào),使該符號(hào)的段屬性和偏移屬性與緊接著的存儲(chǔ)單元相同,該符號(hào)的類型為參數(shù)所規(guī)定的類型。5、段定義語(yǔ)句段定義語(yǔ)句:用來(lái)按段組織程序和利用存儲(chǔ)器,與存儲(chǔ)器的分段結(jié)構(gòu)相對(duì)應(yīng)。1.段開始和結(jié)束語(yǔ)句 datasegment db1,2,3,4,5 dataends2.段使用設(shè)定語(yǔ)句格式:assume段寄存器名:段名[,段寄存器名:段名,...]ASSUMECS:CODE,DS:DATA1,SS:STACK,ES:DATA23.ORG語(yǔ)句:調(diào)整地址計(jì)數(shù)器的當(dāng)前值格式:ORG 數(shù)值表達(dá)式TESTSEGSEGMENTORG100H
;調(diào)整當(dāng)前地址計(jì)數(shù)器的值為100HBEGIN: MOVAX,1234H ;此處BEGIN的偏移為100H ...... ORG500HVAR DW1234H ......TESTSEGENDS匯編語(yǔ)言用$符號(hào)表示當(dāng)前地址計(jì)數(shù)器的值,可以直接引用ORG$+8記住$當(dāng)前地址計(jì)數(shù)器的值是不斷變化的例:ARRAY DW1,2,$+4,3,4,$+46、匯編語(yǔ)言源程序的組織1.一個(gè)完整的源程序;程序名:T3-1.ASM;功能:顯示信息“HELLO”;============================assumecs:code,ds:datassegsegment dw256dup(?)ssegendsdatasegmentmess db'HELLO',0dh,0ah,'$'dataendscodesegmentstart: movax,data movds,ax ;設(shè)數(shù)據(jù)段寄存器 movdx,offsetmess movah,9 ;顯示信息“HELLO” int21h movax,4c00h ;返回DOS int21hcodeends endstart該程序含有3個(gè)邏輯段,堆棧段,數(shù)據(jù)段,代碼段,對(duì)應(yīng)3個(gè)物理段。DOS把控制權(quán)轉(zhuǎn)到該程序時(shí),將設(shè)置妥CS:IP7、順序程序設(shè)計(jì)8、分支程序設(shè)計(jì)9、循環(huán)程序設(shè)計(jì)10、子程序設(shè)計(jì)將反復(fù)出現(xiàn)的程序片段設(shè)計(jì)成子程序。例如標(biāo)準(zhǔn)函數(shù)庫(kù)。優(yōu)點(diǎn):有效縮短程序長(zhǎng)度,節(jié)約存儲(chǔ)空間,大大減輕程序設(shè)計(jì)工作量。通用性,共享性,相對(duì)獨(dú)立,方便閱讀、調(diào)試修改。1、過(guò)程調(diào)用和返回指令:段間遠(yuǎn)調(diào)用、遠(yuǎn)返回;段內(nèi)近調(diào)用、近返回;直接調(diào)用和間接調(diào)用2、過(guò)程定義語(yǔ)句過(guò)程名PROC[NEAR|FAR]...過(guò)程名ENDP11、參數(shù)傳遞1.寄存器傳參2.約定內(nèi)存單元傳參3.堆棧傳參4.call后續(xù)區(qū)傳參12、遞歸1遞歸子程序如果子程序可以直接調(diào)用它自身,稱為直接遞歸調(diào)用如果子程序間接調(diào)用它自身,稱為間接遞歸調(diào)用具有遞歸調(diào)用的子程序稱為遞歸子程序遞歸是嵌套的特殊情形遞歸子程序必須采用寄存器或堆棧傳遞參數(shù)遞歸的深度受堆??臻g的限制13、可重入子程序子程序的重入是指子程序在中斷后被重新調(diào)用。重入是被動(dòng)行為,遞歸式主動(dòng)行為重入前的調(diào)用和重入調(diào)用往往是不相干的,而遞歸調(diào)用密切相關(guān)14、DOS功能調(diào)用1.什么是DOS功能調(diào)用程序員調(diào)用DOS操作系統(tǒng)提供的各種編號(hào)子程序包括設(shè)備驅(qū)動(dòng)(基本I/O)、文件管理和其他(包括內(nèi)存管理,置取時(shí)間、置取中斷向量、終止程序等)。2.調(diào)用方法(1)根據(jù)需要調(diào)用準(zhǔn)備入口參數(shù),有部分功能不需要入口參數(shù)(2)把功能調(diào)用號(hào)送AH寄存器(3)發(fā)軟中斷指令“INT21H”2、基本I/O功能調(diào)用1.帶回顯鍵盤輸入(1號(hào)功能調(diào)用)2.不帶回顯鍵盤輸入(8號(hào)功能調(diào)用)3.直接鍵盤輸入(7號(hào)功能調(diào)用)4.顯示輸出(2號(hào)功能調(diào)用)5.直接控制臺(tái)輸入輸出(6號(hào)功能調(diào)用)6.顯示字符串(9號(hào)功能鍵)7.輸入字符串(0AH號(hào)功能調(diào)用)8.取鍵盤輸入狀態(tài)(OBH號(hào)功能調(diào)用)9.清除輸入緩沖區(qū)后再輸入(OCH號(hào)功能調(diào)用)10.打印輸出(5號(hào)功能調(diào)用)15、磁盤文件管理及應(yīng)用上1.建立文件3CH號(hào)功能調(diào)用2.打開文件3DH號(hào)功能調(diào)用3.讀文件3FH號(hào)功能調(diào)用4.寫文件40H號(hào)功能調(diào)用5.關(guān)閉文件3EH號(hào)功能調(diào)用6.移動(dòng)文件讀寫指針42H號(hào)功能調(diào)用7.刪除文件41H號(hào)功能調(diào)用16、簡(jiǎn)單應(yīng)用程序設(shè)計(jì)1、字符串操作指令1.一般說(shuō)明DS:SI指向源串ES:DI指向目的串DF=0,SI、DI遞增DF=1,SI、DI遞減2.字符串裝入指令:LODSB,LODSW不影響標(biāo)志位3.字符串存儲(chǔ)指令:STOSB,STOSW不影響標(biāo)志位4.字符串傳送指令:MOVSB,MOVSW不影響標(biāo)志位5.字符串掃描指令:SCASB;字節(jié)SCASW;字6.字符串比較指令:CMPSB,CMPSW2、重復(fù)前綴目的:替代重復(fù)循環(huán)串操作1.重復(fù)前綴REP2.REPZ/REPE指令:CX=0或者操作指令使ZF=0時(shí),結(jié)束重復(fù)串操作。3.重復(fù)前綴REPNZ/REPNE:與REPZ相似,CX=0或ZF=1時(shí)結(jié)束18、十進(jìn)制算術(shù)運(yùn)算1.組合的BCD碼加法調(diào)整指令DAA2.組合的BCD碼減法調(diào)整指令DAS3.未組合的BCD碼加法調(diào)整指令A(yù)AA4.未組合的BCD碼減法調(diào)整指令DAS5.未組合的BCD碼乘法調(diào)整指令A(yù)AM6.未組合的BCD碼除法調(diào)整指令A(yù)AD19、DOS程序前綴1.程序段前綴PSP程序段前綴是DOS加載一個(gè)外部命令或應(yīng)用程序(EXE或COM類型)時(shí),在程序段之前設(shè)置的一個(gè)具有256字節(jié)的信息區(qū)。2.終止程序的另一途徑3.應(yīng)用程序取得命令行參數(shù)4、CTRL+C、CTRL+BREAK20、TSR程序設(shè)計(jì)舉例TSR意思時(shí)結(jié)束并駐留。TSR程序是一種特殊的DOS應(yīng)用程序,不同于結(jié)束即退出的一般DOS應(yīng)用程序。TSR程序裝入內(nèi)存并初次運(yùn)行后,程序的大部分仍駐留內(nèi)存,被某種條件激活
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 定期觀摩活動(dòng)方案策劃(3篇)
- 新公司各項(xiàng)管理制度內(nèi)容(3篇)
- 活動(dòng)策劃方案大全建材(3篇)
- 礦山環(huán)境獎(jiǎng)懲管理制度范本(3篇)
- 績(jī)效系統(tǒng)管理制度(3篇)
- 銀行郊游活動(dòng)策劃方案(3篇)
- Unit 5 Topic 3 Section B 課件+素材 2025-2026學(xué)年仁愛(ài)科普版九年級(jí)英語(yǔ)下冊(cè)
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)肉雞行業(yè)發(fā)展前景預(yù)測(cè)及投資方向研究報(bào)告
- 納稅人培訓(xùn)課件與簡(jiǎn)報(bào)
- 信息技術(shù)外包與合作伙伴管理制度
- 臨床創(chuàng)新驅(qū)動(dòng)下高效型護(hù)理查房模式-Rounds護(hù)士查房模式及總結(jié)展望
- 乙肝疫苗接種培訓(xùn)
- 心衰患者的用藥與護(hù)理
- 食品代加工業(yè)務(wù)合同樣本(版)
- 車間管理人員績(jī)效考核方案
- 安全生產(chǎn)應(yīng)急平臺(tái)體系及專業(yè)應(yīng)急救援隊(duì)伍建設(shè)項(xiàng)目可行性研究報(bào)告
- 浙江省杭州市北斗聯(lián)盟2024-2025學(xué)年高二上學(xué)期期中聯(lián)考地理試題 含解析
- 醫(yī)用化學(xué)知到智慧樹章節(jié)測(cè)試課后答案2024年秋山東第一醫(yī)科大學(xué)
- 中國(guó)傳統(tǒng)美食餃子歷史起源民俗象征意義介紹課件
- 醫(yī)療器械樣品檢驗(yàn)管理制度
- 更換法人三方免責(zé)協(xié)議書范文
評(píng)論
0/150
提交評(píng)論