跟我一起學(xué)編程系列課程_第1頁(yè)
跟我一起學(xué)編程系列課程_第2頁(yè)
跟我一起學(xué)編程系列課程_第3頁(yè)
跟我一起學(xué)編程系列課程_第4頁(yè)
跟我一起學(xué)編程系列課程_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一篇匯編語(yǔ)言16位匯編第三部分知識(shí)總結(jié)第三部分匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)心靈雞湯程序員的工作是程序設(shè)計(jì)、編寫(xiě)代碼、完成特定的功能需求,不是看視頻大部分時(shí)間是用來(lái)梳理需求,設(shè)計(jì)結(jié)構(gòu),算法,只需要小部分時(shí)間來(lái)寫(xiě)代碼分析需求、設(shè)計(jì)結(jié)構(gòu)、偽代碼、流程圖、寫(xiě)代碼多寫(xiě)、多練、多調(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ì)語(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)。名字有的偽指令可以缺省。數(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)算符地址表達(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á)式] ;注釋例:VARBDB3VARWDW-12345DD?2.重復(fù)操作符DUP定義數(shù)組,定義緩沖區(qū)的需要BUFFERBUFFERDB

8

DUP(0)DB

0,0,0,0,0,0,0,01)變量和標(biāo)號(hào)的屬性段值偏移類型:變量類型BYTE

WORD

DWORD標(biāo)號(hào)類型NEAR

FAR2.析值操作符SEGOFFSETTYPE變量名或標(biāo)號(hào)變量名或標(biāo)號(hào)變量名或標(biāo)號(hào)段值偏移返回變量或者標(biāo)號(hào)的類型LENGTH變量名操作符LENGTH返回利用DUP定義的數(shù)組中元素的個(gè)數(shù)SIZE變量名變量=(LENGTH變量)×(TYPE變量)3、屬性操作符操作符PTR:指明操作數(shù)類型:BYTE,WORD,DWORD,NEAR,FAR操作符THIS:類型與PTR一致,返回一個(gè)具有指定類型的存儲(chǔ)器操作數(shù),但不為該操作數(shù)分配存儲(chǔ)單元,返回存儲(chǔ)器操作數(shù)的段值和偏移就是下一個(gè)將分配的存儲(chǔ)單元的段值和偏移。

MY_BYTE

EQU

THIS

BYTE

;EQU是符號(hào)定義語(yǔ)句的定義符NY_WORD

DW

?4、偽指令和源程序通過(guò)符號(hào)定義語(yǔ)句,可以把常數(shù)、表達(dá)式等用符號(hào)表示。恰當(dāng)?shù)厥褂梅?hào)定義語(yǔ)句,不僅可以大大方便程序的書(shū)寫(xiě)和閱讀,也有利于程序的調(diào)試和修改1.等價(jià)語(yǔ)句EQU格式:符號(hào)名EQU表達(dá)式(1)用符號(hào)來(lái)代表常數(shù)或者數(shù)值表達(dá)式COUNT EQU

100 ;符號(hào)COUNT代表常數(shù)100用符號(hào)表示一個(gè)字符串

HELLO

EQU

"HELLO

WORD"重新定義關(guān)鍵字或助記符MOVE

EQU

MOVCOUNT

EQU

CX;MOVE代替MOV;COUNT代替CX(4)定義存儲(chǔ)器操作數(shù)符號(hào)VARW

EQU

THIS

WORD ;VARW的類型是字等號(hào)語(yǔ)句(=):用符號(hào)來(lái)表示一個(gè)常數(shù)符號(hào)名=表達(dá)式定義符號(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.段開(kāi)始和結(jié)束語(yǔ)句data

segmentdb

1,2,3,4,5data

ends2.段使用設(shè)定語(yǔ)句格式:assume段寄存器名:段名[,段寄存器名:段名,...]ASSUME

CS:CODE,DS:DATA1,SS:STACK,ES:DATA23.ORG語(yǔ)句:調(diào)整地址計(jì)數(shù)器的當(dāng)前值數(shù)值表達(dá)式格式:ORGTESTSEG

SEGMENTORG

100HBEGIN:;調(diào)整當(dāng)前地址計(jì)數(shù)器的值為100H;此處BEGIN的偏移為100HVARMOV

AX,1234H......ORG

500HDW

1234H......TESTSEG

ENDS匯編語(yǔ)言用$符號(hào)表示當(dāng)前地址計(jì)數(shù)器的值,可以直接引用

ORG

$+8記住$當(dāng)前地址計(jì)數(shù)器的值是不斷變化的例:ARRAY DW

1,2,$+4,3,4,$+46、匯編語(yǔ)言源程序的組織1.一個(gè)完整的源程序;程序名:T3-1.ASM;功能:顯示信息“HELLO”;============================assume

cs:code,ds:datasseg

segmentdw

256

dup(?)sseg

endsdata

segmentmess db

"HELLO",0dh,0ah,"$"data

ends;設(shè)數(shù)據(jù)段寄存器;顯示信息“HELLO”;返回DOScode

segmentstart:mov

ax,datamov

ds,axmov

dx,offset

messmov

ah,9int

21hmov

ax,4c00hint

21hcode

endsend

start該程序含有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ù)傳遞寄存器傳參約定內(nèi)存單元傳參堆棧傳參

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)用什么是DOS功能調(diào)用程序員調(diào)用DOS操作系統(tǒng)提供的各種編號(hào)子程序包括設(shè)備驅(qū)動(dòng)(基本I/O)、文件管理和其他(包括內(nèi)存管理,置取時(shí)間、置取中斷向量、終止程序等)。調(diào)用方法根據(jù)需要調(diào)用準(zhǔn)備入口參數(shù),有部分功能不需要入口參數(shù)把功能調(diào)用號(hào)送AH寄存器發(fā)軟中斷指令“INT

21H”2、基本I/O功能調(diào)用帶回顯鍵盤(pán)輸入(1號(hào)功能調(diào)用)不帶回顯鍵盤(pán)輸入(8號(hào)功能調(diào)用)直接鍵盤(pán)輸入(7號(hào)功能調(diào)用)顯示輸出(2號(hào)功能調(diào)用)直接控制臺(tái)輸入輸出(6號(hào)功能調(diào)用)顯示字符串(9號(hào)功能鍵)輸入字符串(0AH號(hào)功能調(diào)用)取鍵盤(pán)輸入狀態(tài)(OBH號(hào)功能調(diào)用)清除輸入緩沖區(qū)后再輸入(OCH號(hào)功能調(diào)用)打印輸出(5號(hào)功能調(diào)用)15、磁盤(pán)文件管理及應(yīng)用上建立文件3CH號(hào)功能調(diào)用打開(kāi)文件3DH號(hào)功能調(diào)用讀文件3FH號(hào)功能調(diào)用寫(xiě)文件40H號(hào)功能調(diào)用關(guān)閉文件3EH號(hào)功能調(diào)用移動(dòng)文件讀寫(xiě)指針42H號(hào)功能調(diào)用刪除文件41H號(hào)功能調(diào)用16、簡(jiǎn)單應(yīng)用程序設(shè)計(jì)1、字符串操作指令一般說(shuō)明

DS:SI指向源串

ES:DI指向目的串DF=0,SI、DI遞增DF=1,

SI、DI遞減字符串裝入指令:LODSB,LODSW不影響標(biāo)志位字符串存儲(chǔ)指令:STOSB,STOSW不影響標(biāo)志位字符串傳送指令:MOVSB,MOVSW不影響標(biāo)志位字符串掃描指令:SCASB;字節(jié)SCASW;字字符串比較指令:CMPSB,CMPSW2、重復(fù)前綴目的:替代重復(fù)循環(huán)串操作

1.重復(fù)前綴REPREPZ/REPE指令:CX=0或者操作指令使ZF=0時(shí),結(jié)束重復(fù)串操作。重復(fù)前綴REPNZ/REPNE:與REPZ相似,CX=0或ZF=1時(shí)結(jié)束18、十進(jìn)制算術(shù)運(yùn)算組合的BCD碼加法調(diào)整指令DAA組合的BCD碼減法調(diào)整指令DAS未組合的BCD碼加法調(diào)整指令A(yù)AA未組合的BCD碼減法調(diào)整指令DAS未組合的BCD碼乘法調(diào)整指令A(yù)AM未組合的BCD碼除法調(diào)整指令A(yù)AD19、DOS程序前綴程序段前綴PSP程序段前綴是DOS加載一個(gè)外部命令或應(yīng)用程序(EXE或COM類型)時(shí),在程序段之前設(shè)置的一個(gè)具有256字節(jié)的信息區(qū)。終止程序的另一途徑應(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)存并

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論