![程序設(shè)計(jì)基本語(yǔ)法PPT學(xué)習(xí)教案_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/11/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff42/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff421.gif)
![程序設(shè)計(jì)基本語(yǔ)法PPT學(xué)習(xí)教案_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/11/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff42/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff422.gif)
![程序設(shè)計(jì)基本語(yǔ)法PPT學(xué)習(xí)教案_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/11/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff42/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff423.gif)
![程序設(shè)計(jì)基本語(yǔ)法PPT學(xué)習(xí)教案_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/11/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff42/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff424.gif)
![程序設(shè)計(jì)基本語(yǔ)法PPT學(xué)習(xí)教案_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/11/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff42/a8fd848e-cf2b-4ce3-b2ba-ee7b230fff425.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、會(huì)計(jì)學(xué)1 程序設(shè)計(jì)基本語(yǔ)法程序設(shè)計(jì)基本語(yǔ)法 EXAM.ASM ASCII 源程序 EXAM.OBJ 可選 EXAM.LST EXAM.CRF 機(jī)器碼目標(biāo)程序 MASM.EXE 匯編 匯編程序 EXAM.EXE EXAM.COM LINK.EXE 連接 連接程序 可執(zhí)行程序 4.1計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的演變 檢查源程序的語(yǔ)法錯(cuò)誤,并給出出錯(cuò)信息。 產(chǎn)生目標(biāo)文件(.OBJ);列表文件;(.LST)和交叉索引文件 (.CRF文件)。 展開(kāi)宏指令。 匯編過(guò)程 宏匯編語(yǔ)言及編程 第1頁(yè)/共31頁(yè) STACK_SEG SEGMENT ;堆棧段,段名為STACK_SEG DW 256 DUP(?) ;分配堆棧
2、段的大小為256個(gè)字 TOP LABEL WORD ;堆棧棧底位置 STACK_SEG ENDS DATA_SEG SEGMENT ;數(shù)據(jù)段,段名為DATA_SEG STRING DB Let ME have a try !,$ ;定義字符串?dāng)?shù)據(jù) DATA_SEG ENDS CODE_SEG SEGMENT ;代碼段,段名為CODE_SEG ASSUME CS:CODE_SEG, DS:DATA_SEG, SS:STACK_SEG START:MOVAX, DATA_SEG ;程序執(zhí)行起始點(diǎn) MOV DS, AX ;將段寄存器指向用戶數(shù)據(jù)段 MOV AX, STACK_SEG MOV SS,
3、AX ;將堆棧指針指向用戶定義堆棧 MOV SP, OFFSET TOP LEA DX,STRING MOV AH,9 ;系統(tǒng)功能調(diào)用,在CRT顯示字符串 INT 21H MOV AH, 4CH;系統(tǒng)功能調(diào)用,程序結(jié)束返回操作系統(tǒng) INT 21H CODE_SEG ENDS END START ;匯編結(jié)束,程序起始點(diǎn)為START 堆 棧 段 數(shù) 據(jù) 段 代 碼 段 4.2匯編語(yǔ)言語(yǔ)法 宏匯編語(yǔ)言的基本格式 第2頁(yè)/共31頁(yè) 宏匯編語(yǔ)言的基本格式 4.2匯編語(yǔ)言語(yǔ)法 START:MOVAX,DATA;入口 MOVDS,AX ;段寄存器初始化 MOVAX,EXD MOVES,AX DATA SEG
4、MENT DATA ENDS EXD SEGMENT EXD ENDS STACK SEGMENT STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ASSUME ES:EXD,SS:STACK n幾個(gè)段構(gòu)成,可由數(shù)據(jù)段、代碼 段、堆棧段或附加數(shù)據(jù)段組成,至 少要有代碼段。 n代 碼 段 必 須 有 匯 編 起 始 標(biāo) 號(hào) START;偽指令END。 nLINK能正確地設(shè)置CS和IP值、 SS和SP值 nLINK不設(shè)置DS和ES值。 MOVAH,4CH INT21H;出口 CODE ENDS ENDSTART;程序結(jié)束 第3頁(yè)/共31頁(yè) 4.2匯編語(yǔ)
5、言語(yǔ)法 宏匯編語(yǔ)句的基本格式 指令性語(yǔ)句使CPU產(chǎn)生動(dòng)作、并在程序執(zhí)行時(shí)才處理的指令 標(biāo)號(hào):操作碼操作數(shù);注釋 如:START:MOV AX ,DATA;初始化數(shù)據(jù)段 指示性語(yǔ)句(偽指令)不產(chǎn)生CPU動(dòng)作、匯編程序處理的說(shuō)明性 指令 名字/變量 命令參數(shù);注釋 如:DATA SEGMENT AT 2000H;數(shù)據(jù)段地 址 偽指令與具體的處理器類型無(wú)關(guān),但與匯編程序有關(guān)。不同 版本的匯編程序支持不同的偽指令 第4頁(yè)/共31頁(yè) 匯編語(yǔ)句的操作數(shù)(Operands) 寄存器(Registers) 常量(Constants) 第5頁(yè)/共31頁(yè) 存儲(chǔ)器操作數(shù) 標(biāo)識(shí)符 長(zhǎng)度 僅限于變量 第6頁(yè)/共31頁(yè)
6、4.2匯編語(yǔ)言語(yǔ)法 數(shù)字常量:直接用數(shù)字進(jìn)行表示的常量。 二進(jìn)制:10000100B、11110001020100B 十進(jìn)制:12356D 十六進(jìn)制:12ABH、0F56AH (字母打頭必須前面補(bǔ)0,否則將出現(xiàn)匯編語(yǔ)法錯(cuò)誤。) 如: MOVAX,100D MOVBL,0FAH MOVCL,1010 1000B 常量、變量和標(biāo)號(hào) 常量 匯編源程序翻譯成機(jī)器碼目標(biāo)程序期間已經(jīng)有確定數(shù)值的量。 分為數(shù)字常量和符號(hào)常量?jī)深悺?指令中的立即數(shù),MEM直接地址) 第7頁(yè)/共31頁(yè) 4.2匯編語(yǔ)言語(yǔ)法 符號(hào)常量:用標(biāo)識(shí)符(常量名)表示的常量。 符號(hào)命名規(guī)則: 1)031個(gè)ASCII碼字符 2)AZ、az、0
7、9 、?、$及下劃線構(gòu)成。 3)?不能單獨(dú)作為標(biāo)識(shí)符。 4)無(wú)獨(dú)立的保留字及運(yùn)算符。 常量、變量和標(biāo)號(hào) 常量 合法標(biāo)識(shí)符: STA_124$ MOV_? 103 非法標(biāo)識(shí)符: STA+124$ MOV ? 第8頁(yè)/共31頁(yè) 4.2匯編語(yǔ)言語(yǔ)法 常量、變量和標(biāo)號(hào) 常量 定義 常量名EQU(=)數(shù)值或字母 例如:AAEQU30 BB=1000H CCEQU10001010B DD= ABC MOVAX,AA MOVAL,AA MOVBX,BB MOVBH,BB ;錯(cuò)BH將產(chǎn)生溢出 改善程序的可讀性,程序的修改調(diào)試方便。 “=”可重復(fù)定義 EQU不可重復(fù)定義 第9頁(yè)/共31頁(yè) 4.2匯編語(yǔ)言語(yǔ)法 常
8、量、變量和標(biāo)號(hào) 變量 內(nèi)存單元地址的符號(hào)表示,存在地址的三個(gè)屬性。 字節(jié)DB(8位)一個(gè)字節(jié)存貯單元 字DW(16位)二個(gè)連續(xù)字節(jié)存 貯單元 雙字DD(32位)四個(gè)連續(xù)字節(jié)存 貯單元 雙字DQ(64位)8個(gè)連續(xù)字節(jié)存貯 單元 雙字DT(80位)10個(gè)連續(xù)字節(jié)存 貯單元 段屬性:段地址,段寄存器的值 偏移地址:段內(nèi)地址。 變量類型:變量所在存貯單元的類型,由存貯偽指令指定。 第10頁(yè)/共31頁(yè) 4.2匯編語(yǔ)言語(yǔ)法 常量、變量和標(biāo)號(hào) 變量定義 變量名存貯偽指令表達(dá)式1,表達(dá)式2, 例如: XDB0AH AAEQU1ABCH YDWAA STRDBABCD1234,12H,0ACH 重復(fù)子句表達(dá)式:
9、 NDUP(表達(dá)式) 例如: AADB10 DUP(0) BBDW5 DUP(21*5),0DH,0AH 第11頁(yè)/共31頁(yè) 4.2匯編語(yǔ)言語(yǔ)法 常量、變量和標(biāo)號(hào) 標(biāo)號(hào) 指令性語(yǔ)句存放地址的符號(hào)表示。 同變量一樣,存在三個(gè)與地址有關(guān)的屬性,常用于指令的轉(zhuǎn)移和 子程序調(diào)用。 例如: MOVSI,100H MOVDI,200H MOVCX,10H LOOP1:MOVAL,SI MOVDI,AL INCSI INCDI LOOP LOOP1;此處LOOP1不是保留字 標(biāo)號(hào)定義 標(biāo)號(hào)名:機(jī)器指令語(yǔ)句 第12頁(yè)/共31頁(yè) 表達(dá)式與運(yùn)算符 由操作數(shù)(常量、變量、標(biāo)號(hào))和運(yùn)算符構(gòu)成。 算術(shù)運(yùn)算符 +、*、/
10、 MOD除法取余運(yùn)算10 MOD 3=1 SHL左移運(yùn)算 21HSHL1結(jié)果42H,相當(dāng)于乘2的操作 。 SHR右移運(yùn)算 84SHR2結(jié)果21H,相當(dāng)于除4的操作 。 (SHL、SHR注意和相應(yīng)的邏輯指令區(qū)別) 在匯編時(shí)完成相應(yīng)的運(yùn)算(數(shù)字常數(shù)),(OBJ)目標(biāo)程序中不 存在表達(dá)式,應(yīng)用程序的DEBUG調(diào)試中不可能看到任何表達(dá)式。 第13頁(yè)/共31頁(yè) 表達(dá)式與運(yùn)算符 關(guān)系運(yùn)算符 EQ、NE、LT、LE、GT、GE 運(yùn)算的結(jié)果為真用0FFFFH表示,否則為0。 例如:MOVBX,(PORT LE 5) AND 20H) 當(dāng)POTR小于5為MOVBX,20H否則為MOV BX,0H 邏輯運(yùn)算符 A
11、ND、OR、NOT、XOR 例如:ANDAL,86H AND0FH AND是指令。 AND邏輯運(yùn)算符,86H AND 0FH=06H 匯編后的指令是:AND AL,06H 與邏輯運(yùn)算 指令不同, CPU不執(zhí)行 任何操作, 匯編時(shí)運(yùn)算 ,在目標(biāo)程 序中只是一 個(gè)常數(shù)。 4.2匯編語(yǔ)言語(yǔ)法 第14頁(yè)/共31頁(yè) 表達(dá)式與運(yùn)算符 分析運(yùn)算符 4.2匯編語(yǔ)言語(yǔ)法 求段基址SEG符號(hào)名 MOVAX,SEGAA SEG AA 為立即尋址是AA的段地址 求符號(hào)名的類型值TYPE符號(hào)名 MOVAL,TYPECC 返回變量CC的類型的字節(jié)數(shù)。 字節(jié)數(shù)據(jù): TYPE CC=1字?jǐn)?shù)據(jù): TYPE CC=2 雙字?jǐn)?shù)據(jù):
12、 TYPE CC=48字節(jié)數(shù)據(jù): TYPE CC=8 10字節(jié)數(shù)據(jù): TYPE CC=10 標(biāo)號(hào):NEAR=0FFFFHFAR=0FFFEH 求偏移地址OFFSET 符號(hào)名 MOVSI,OFFSET BB OFFSET BB 為立即尋址,是BB的偏移地址 第15頁(yè)/共31頁(yè) 表達(dá)式與運(yùn)算符分析運(yùn)算符 4.2匯編語(yǔ)言語(yǔ)法 變量的元素個(gè)數(shù)LENGTH 符號(hào)名 DUP定義的變量的元素個(gè)數(shù),否則=1 如,BUF DW N DUP(?),LENGTH BUF=N X DD 12345678H,LENGTH X=1 求符號(hào)名分配的總字節(jié)數(shù) SIZE 符號(hào)名 返回變量的總字節(jié)數(shù):SIZE=LENGTH*TY
13、PE 例如: BUF1DBN1,N2,N3,N10 BUF2DB10DUP(0) BUF3DW10DUP(?) OFFSET BUF1=0000H TYPE BUF1=1 LENGTH BUF1=1 SIZEBUF1=1 OFFSET BUF2=000AH TYPE BUF2=1 LENGTH BUF2=10 SIZEBUF2=10 OFFSET BUF3=0014H TYPE BUF3=2 LENGTH BUF3=10 SIZEBUF3=20 第16頁(yè)/共31頁(yè) 表達(dá)式與運(yùn)算符 屬性運(yùn)算符 4.2匯編語(yǔ)言語(yǔ)法 定義類型算符 PTR 格式:類型PTR表達(dá)式 類型BYTEWORD DWORD 例
14、如: MOVBYTE PTR DI,12H ;將DI定義為字節(jié)類型。 MOVDI,12H;非法指令 INCWORD PTRBX;字加1 INCBYTE PTRBX;字節(jié)加1,當(dāng)( BX)=1FFH時(shí)結(jié)果 ;不相同 INCBX;非法指令 BUFWDW1234H;BUF為字類型。 MOVAH,BYTE PTR BUFW;將BUFW指定為字節(jié) 類型 ;AH=34H 第17頁(yè)/共31頁(yè) 指示性語(yǔ)句(偽指令) 4.2匯編語(yǔ)言語(yǔ)法 符號(hào)定義偽指令:EQU (=) 格式:符號(hào)名EQU(=)表達(dá)式 例如: COUNT EQU20 ABC=21H+4 MOVAL,COUNT;將20送AL MOVAL,ABC;將
15、25H送AL B EQU10 ;非法定義 如:A=3 B EQU5;定義 B=5 A=10;重定義 A為10 EQU不能重復(fù)定義,=可任意重復(fù)定義。 第18頁(yè)/共31頁(yè) 指示性語(yǔ)句(偽指令) 4.2匯編語(yǔ)言語(yǔ)法 段定義偽指令 格式:段名SEGMENT定位方式組合方式類別 名 段名ENDS 定義了以段名命名的存貯段。匯編時(shí)給該段名分配一個(gè)段基值。 例如: DATA SEGMENT DATAENDS CODESEGMENT CODEENDS 定義了二個(gè)段,段名分別為DATA、CODE。 第19頁(yè)/共31頁(yè) 指示性語(yǔ)句(偽指令) 4.2匯編語(yǔ)言語(yǔ)法 段定義偽指令的參數(shù) 格式:段名 SEGMENT定位
16、類型組合方式類別 名 定位方式:段的起始地址邊界規(guī)則 PAGE指定起始地址的低8位是0,稱頁(yè)邊界 XXXX XXXX XXXX 0000 0000B PARA指定起始地址的低4位是0,稱段邊界(缺?。?XXXX XXXX XXXX XXXX 0000B WORD指定起始地址的低2位是0,稱字邊界 XXXX XXXX XXXX XXXX XX00B BYTE指定起始地址為任意值。 XXXX XXXX XXXX XXXX XXXXB (PARA缺省方式下可以省略) 第20頁(yè)/共31頁(yè) 指示性語(yǔ)句(偽指令) 4.2匯編語(yǔ)言語(yǔ)法 段定義偽指令的參數(shù) 格式:段名 SEGMENT定位類型組合類型類別 名
17、組合方式:連接程序時(shí)設(shè)定本段與其它同名段的連接方式。(模 塊化程序設(shè)計(jì)) PUBLIC:同名段依次連接起來(lái),形成一個(gè)連續(xù)的段。 COMMON:同名段共用同一段起始地址,相互重疊段的長(zhǎng)度, 為最長(zhǎng)的段的長(zhǎng)度。 AT 表達(dá)式:定位在表達(dá)式所指定的段地址。(代碼段例外) STACK:同名段構(gòu)成一個(gè)連續(xù)的堆棧段,自動(dòng)初始化SP。 MEMORY:表示本段定位在所有段的地址之上,高地址處。 空缺(NONE)不與任何段相連接。各段有獨(dú)立段基址。 (缺省方式) 第21頁(yè)/共31頁(yè) 指示性語(yǔ)句(偽指令) 4.2匯編語(yǔ)言語(yǔ)法 段定義偽指令的參數(shù) 格式:段名 SEGMENT 定位類型組合方式類別名 類別名:用單引號(hào)
18、括起來(lái)的字符串。類別名相同的段按先后順序 存放在一個(gè)連續(xù)的存貯區(qū)中,形統(tǒng)一的物理段。(模塊化程序設(shè)計(jì)) 第22頁(yè)/共31頁(yè) 指示性語(yǔ)句(偽指令) 段寄存器說(shuō)明偽指令 格式:ASSUME段寄存器:段名1,段寄存器:段名 2 在代碼段,告訴匯編程序CS、DS、ES、SS應(yīng)具有的符號(hào)段基址 ,但是段寄存器(CS除外)還必須用傳送指令賦值。一般緊跟在 SEGMENT語(yǔ)句之后 例如:CODESEGMENT PARA ASSUME CS:CODE,DS:DATA MOVAX,DATA MOVDS,AX;傳送指令賦值 CODEENDS DATASEGMENT DATAENDS 4.2匯編語(yǔ)言語(yǔ)法 第23頁(yè)/
19、共31頁(yè) 指示性語(yǔ)句(偽指令) 過(guò)程(子程序)定義偽指令 格式:過(guò)程名 PROCNEARFAR RET;返回指令 過(guò)程名 ENDP 過(guò)程名:過(guò)程的起始地址,如子程序定義。 類型:NEAR近過(guò)程(主、子同段) FAR遠(yuǎn)過(guò)程(主、子在兩個(gè)不同的代碼段) 程序結(jié)束偽指令 END 格式:END標(biāo)號(hào) 標(biāo)號(hào)為程序中第一條指令性指令標(biāo)號(hào)。 4.2匯編語(yǔ)言語(yǔ)法 第24頁(yè)/共31頁(yè) DATASEGMENT varB DB 63,63H,ABCD,3 DUP (?),2 DUP (1,3) varW DW 1234H,5,AB,CD,?,2 DUP (1,3) DATAENDS CODESEGMENT ASSUM
20、ECS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,varB MOV BL,varB+1 MOV CL,varB+5 MOV DX,varW MOV SI,varW+2 MOV DI,varW+4 MOV AH,04CH INT21H CODEENDS ENDSTART 驗(yàn)證ARRA.ASM AL=63(3F) BL=63H CL=44H DX=1234H DX=5 DX=4241H 4.2匯編語(yǔ)言語(yǔ)法 第25頁(yè)/共31頁(yè) 例:數(shù)據(jù)段的數(shù)據(jù)如下所示,圖示其存貯情況。及指令執(zhí)行結(jié)果。(DS)=2003H DATASEGMENT BUF1DB
21、123 BUF2DB1,2,3 AEQU100H XEQUTHISBYTE NUMDW2 DUP(12H),0F23H DATA ENDS MOVAH,4CH INT21H CODE ENDS ENDSTA 31H 32H 33H XXH 2003H:0000H 2003H:0001H 2003H:0002H BUF1 01H 02H 03H 2003H:0003H 2003H:0004H 2003H:0005H BUF2 12H 00H 12H 00H 23H 0FH XXH XXH 2003H:0006H 2003H:0007H 2003H:0008H 2003H:0009H 2003H:000AH 2003H:000BH 2003H:000CH 2003H:000DH NUM(X) SI=3 AX=2003H BL=12H AX=0012H CODESEGMENT ASSUME CS:CODE,DS:DATA STA: MO
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車抵押貸款貸前調(diào)查合同
- 施工單位見(jiàn)證取樣制度
- 科技背景下家庭教育的創(chuàng)新與實(shí)踐
- 小區(qū)工廠醫(yī)院智能化弱電系統(tǒng)設(shè)計(jì)解決方案課件
- DB3715T 70-2025楝樹(shù)栽培技術(shù)規(guī)程
- 三人創(chuàng)業(yè)合作經(jīng)營(yíng)合同
- 專業(yè)市場(chǎng)店鋪?zhàn)赓U合同模板
- 二手挖機(jī)轉(zhuǎn)讓合同范本
- 個(gè)人借款與擔(dān)保合同示范文本
- 二手房銷售獨(dú)家委托合同
- 元素的用途完整版本
- 建筑設(shè)計(jì)工程設(shè)計(jì)方案
- 供熱行業(yè)環(huán)境保護(hù)管理辦法
- 七十歲換領(lǐng)證駕考三力測(cè)試答題
- 2023年部編版高中語(yǔ)文必修上冊(cè)古詩(shī)詞誦讀
- 2024年湖南省生態(tài)環(huán)境監(jiān)測(cè)專業(yè)技術(shù)人員大比武競(jìng)賽考試題庫(kù)(含答案)
- 2024版義務(wù)教育小學(xué)數(shù)學(xué)課程標(biāo)準(zhǔn)
- EAM資產(chǎn)管理系統(tǒng)的功能與應(yīng)用
- 《少兒財(cái)商教育》課件
- Nokia銷售五部曲培訓(xùn)課件
- 電子表格表格會(huì)計(jì)記賬憑證模板
評(píng)論
0/150
提交評(píng)論