




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
會計學1第4章_匯編語言程序設(shè)計4.1.3數(shù)據(jù)項㈠常量⑴數(shù)值常量表
各種形式數(shù)字常量格式對照表第1頁/共43頁字符串常量是用單引號引起來的一個或多個字符。字符串常量是以各字符的ASCⅡ碼表示的。如‘A’用41H表示,‘A1B2’用41H,31H,42H,32H表示。⑵字符串常量㈡變量(或標號)變量(或標號)有三個屬性:段地址屬性、偏移地址屬性、類型屬性。第2頁/共43頁4.2表達式與運算符4.2.1算術(shù)運算符(了解)算術(shù)運算符包括:+(加)、-(減)、*(乘)、/(除)、MOD(求模)等?!纠坑盟阈g(shù)運算符進行數(shù)值表達式運算。MOVAL,25*4–50;AL=50=32HMOVBL,50/7;NUM2=7MOVDL,50MOD7 ;DL=1 ┆ 第3頁/共43頁邏輯運算符包括:AND、OR、XOR、NOT四種運算。【例】用邏輯運算符進行運算。MOV AL,34HAND0FH;04H→ALMOV BL,05HOR30H;35H→BLMOV CX,NOT00FFH;0FF00H→CXMOV DX,789AHXOR000FH;7895H→DX4.2.2邏輯運算符(了解)第4頁/共43頁4.2.3關(guān)系運算符(了解)關(guān)系運算符包括:相等(EQ),不等(NE),小于(LT),大于(GT),小于等于(LE)及大于等于(GE)。【例】用關(guān)系運算符進行數(shù)值表達式運算。MOV
DH,10LT5;DH=0MOV
CL,0AAHGT7FH;CL=0FFHMOV AX,‘A‘
EQ41H;0FFFFH→AXADD BL,5LT0101B;BL+0→BL第5頁/共43頁PTR運算符格式:類型PTR地址表達式
PTR用來對存儲單元(重新)規(guī)定類型。4.2.4屬性運算符例如:MOVBYTEPTR[1000],0;[1000]清零MOVWORDPTR[1000],0;[1000]、[1001]清零第6頁/共43頁(1)SEG運算符格式:SEG變量或標號功能:分離出其后變量或標號所在段的段基址。例如:MOV AX,SEGARRMOV DS,AX(2)OFFSET運算符格式:OFFSET變量或標號功能:分離出其后變量或標號的偏移地址。例如:
MOVBX,OFFSET
BUF4.2.5數(shù)值返回運算符第7頁/共43頁(3)TYPE運算符(了解)格式:TYPE變量或標號第8頁/共43頁4.3偽指令⑴數(shù)據(jù)定義偽指令常用的數(shù)據(jù)定義偽指令有DB,DW,DD,DQ,DT。格式:[變量名]數(shù)據(jù)定義偽指令表達式[,…]⑵段定義偽指令SEGMENT/ENDS段名
SEGMENT
…
…
本段程序內(nèi)容
…
段名ENDS第9頁/共43頁【例】為數(shù)據(jù)段分配存儲單元。DATA SEGMENTA DB 11H,12H,13HB DW 1122H,3344HC DD 12345678HDATA ENDS【例】為字符串分配存儲單元。DATA SEGMENTSTR1 DB ‘1234’STR2 DW‘AB’,‘CD’,‘A’STR3 DD ‘AB’DATA ENDS第10頁/共43頁 ┆NUM1 EQU 25*4–50 ;NUM1=50NUM2 EQU NUM1/7 ;NUM2=7NUM3 DB NUM1MOD7 ;(NUM3)=1VAR1 DB 1,2,3,4,5VAR2 DB ‘12345’NUM4 EQU VAR2-VAR1 ;NUM4=5NUM5 EQU 0FH ┆ 【例】⑶符號定義偽指令格式:符號名EQU表達式第11頁/共43頁⑷段分配偽指令A(yù)SSUME格式:ASSUME段寄存器:段名[,段寄存器:段名]【例】用ASSUME偽指令建立代碼段、堆棧段與CS和SS的對應(yīng)關(guān)系。DATA1 SEGMENTA DB1,2,3DATA1 ENDSSTACK SEGMENTSTACKDB 200DUP(0)STACK ENDSDATA2 SEGMENTB DB
‘123ABC’DATA2 ENDSDATA3 SEGMENTC DB?,?,?DATA3 ENDSCODE SEGMENTASSUME DS:DATA1,ES:DATA3,CS:CODE,SS:STACKSTART:MOV AX,DATA1 MOV DS,AX ;DATA1→DS MOV AX,DATA3 MOV ES,AX ;DATA3→ES ┆CODE ENDS END START第12頁/共43頁⑸源程序結(jié)束偽指令格式:END標號⑹置匯編地址計數(shù)器偽指令ORG格式:ORG數(shù)值表達式【例】給匯編地址計數(shù)器賦值。DATA SEGMENTORG 10;置$值為10VAR1DW100H,200HORG $+5 ;置$的值為14+5,即為19VAR2DB1,2,$+1,$+2N EQU$-VAR2 ;($)=23,N=4DATAENDS第13頁/共43頁4.4常用的DOS系統(tǒng)功能調(diào)用⑴單字符輸入(1號調(diào)用)格式:MOV AH,1
INT 21H功能:從鍵盤輸入字符的ASCII碼送入寄存器AL中,并顯示。⑵單字符顯示(2號調(diào)用)格式:MOVDL,待顯示字符的ASCII碼
MOVAH,2
INT21H功能:將DL寄存器中的字符送顯示器顯示。第14頁/共43頁⑶結(jié)束調(diào)用(4CH號調(diào)用)格式:MOV AH,4CHINT 21H功能:終止當前程序并返回調(diào)用程序。⑷顯示字符串(9號調(diào)用)格式:LEA DX,待顯示字符串首偏移地址
MOV AH,9
INT 21H功能:將當前數(shù)據(jù)區(qū)中以‘$’結(jié)尾的字符串送顯示器顯示。第15頁/共43頁DATASEGMENTSTR DB0DH,0AH,'Exampleofstringdisplay!$'DATA ENDSCODESEGMENT ASSUMEDS:DATA,CS:CODEBEGIN:MOV AX,DATA MOV DS,AX LEA DX,STR MOV AH,9 INT 21H MOV AH,4CH INT 21HCODE ENDS END BEGIN【例】若要在屏幕上顯示字符串“Exampleofstringdisplay!”,則程序如下:第16頁/共43頁綜合舉例【例】已知一數(shù)據(jù)段中的數(shù)據(jù)為:DATA SEGMENTA DW0CHBUF DB‘AB’,0DH,0AHC EQU500HB DW0FFAAHD DDBUFM DB2DUP(1),2DUP(2,’B’)DATA ENDS請畫出該數(shù)據(jù)段數(shù)據(jù)存儲的形式。第17頁/共43頁DATA SEGMENTNUM DB01000101BBUF DB0DH,0AH,'NUM='STR DB4DUP(?)DATA ENDSCODE SEGMENTASSUMEDS:DATA,CS:CODESTART:MOV
AX,DATA
MOV DS,AX LEA DI,STR MOV AL,NUM MOV CL,4 SHR AL,CLOR AL,30H【例】閱讀下列程序,指出此程序所完成的功能以及在顯示器上顯示的內(nèi)容。
MOV [DI],AL
INC DI
MOV AL,NUM
AND AL,0FH
OR AL,30H
MOV [DI],AL
INCDI
MOV BYTEPTR[DI],'H'
INC DI
MOV BYTEPTR[DI],'$'
LEA DX,BUF
MOV AH,9
INT 21H
MOV AH,4CH INT 21HCODEENDS END START第18頁/共43頁匯編語言程序設(shè)計一般有以下幾個步驟:步驟1:分析問題,確定算法步驟2:繪制流程圖步驟3:根據(jù)流程圖編制程序步驟4:調(diào)試程序4.5.1概述4.5程序設(shè)計方法㈠匯編語言程序設(shè)計的一般步驟第19頁/共43頁①起止框㈡流程圖②判斷框
③處理框
④指向線⑤連接框
第20頁/共43頁【例】試編寫一程序計算以下表達式的值。w=50+x*(y+z)
式中x、y、z均為無符號字節(jié)數(shù)據(jù)。設(shè)x、y、z的值存放在字節(jié)變量X、Y、Z中,結(jié)果存放在字變量W之中。(y+z)<2564.5.2順序程序設(shè)計START:MOVAX,DATAMOVDS,AX;DATA→AXMOVAL,YMOVBL,ZADDAL,BL;Y+Z→AL MOV CL,X MULCL;AL*X→AX MOVW,AXMOVAH,4CHINT 21HCODE ENDS ;退出DOS狀態(tài)
END START源程序如下:DATA SEGMENTX DB 20Y DB 10Z DB 30W DW ?DATA ENDSCODE SEGMENTASSUMEDS:DATA,CS:CODE第21頁/共43頁4.5.3分支程序設(shè)計⑴無條件轉(zhuǎn)移指令㈠轉(zhuǎn)移指令JMP標號(MEM/REG)第22頁/共43頁⑵條件轉(zhuǎn)移指令①根據(jù)單個標志位的條件轉(zhuǎn)移指令第23頁/共43頁②無符號數(shù)條件轉(zhuǎn)移指令【例】比較無符號數(shù)大小,將較大的數(shù)存放AX寄存器。CMP AX,BX;(AX)-(BX)JNB NEXT ;若AX>=BX,轉(zhuǎn)移到NEXTXCHGAX,BX;若AX<BX,交換NEXT:…第24頁/共43頁③有符號數(shù)條件轉(zhuǎn)移指令【例】比較有符號數(shù)大小,將較大的數(shù)存放在AX寄存器。CMP AX,BX ;(AX)-(BX)JNL NEXT ;若AX>=BX,轉(zhuǎn)移到NEXTXCHGAX,BX ;若AX<BX,交換NEXT:…第25頁/共43頁㈡分支程序的設(shè)計條件程序段1程序段2
分支結(jié)構(gòu)第26頁/共43頁【例】編寫計算下面函數(shù)值的程序:
1 X>0Y=0 X=0-1 X<0設(shè)輸入數(shù)據(jù)為X、輸出數(shù)據(jù)Y,且皆為字節(jié)變量。程序流程圖如圖所示。第27頁/共43頁DATA SEGMENTX DB-10Y DB?DATA ENDSCODE SEGMENT ASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXCMPX,0 ;與0進行比較
JGEA1 ;X≥0轉(zhuǎn)A1
MOVY,-1;X<0時,-1→Y
JMPEXITA1:JGA2 ;X>0轉(zhuǎn)A2
MOVY,0 ;X=0時,0→YJMPEXITA2:MOVY,1 ;X>0,1→YEXIT:MOVAH,4CHINT21HCODEENDSEND START第28頁/共43頁【例】試編一程序,求三個無符號字數(shù)據(jù)中的最大值,并將最大值存入MAX字單元中。三個數(shù)分別在三個字變量X、Y、Z中存儲。程序如下:DATA SEGMENTXDW00ABHYDW5ZDW200MAX DW?DATA ENDS第29頁/共43頁MOVAX,XCMPAX,Y;X>Y?
JAL1MOVAX,Y L1:CMPAX,Z;>Z?
JAEXITMOVAX,ZEXIT:MOVMAX,AXMOVAH,4CHINT21HCODEENDSENDSTARTCODE SEGMENTASSUMEDS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AX第30頁/共43頁4.5.4循環(huán)程序設(shè)計㈠重復(fù)控制指令⑴循環(huán)指令LOOP語句格式:LOOP短標號功能:(CX)-1≠0,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。說明:使用LOOP指令可代替兩條指令:
DECCXJNE短標號⑵相等/為零循環(huán)指令LOOPE(自學)語句格式:LOOPE(LOOPZ)短標號功能:(CX)-1≠0且ZF=1,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。第31頁/共43頁⑶不相等/不為零循環(huán)指令LOOPNE(自學)語句格式:LOOPNE(LOOPNZ)短標號功能:(CX)-1≠0且ZF=0,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。⑷CX為零轉(zhuǎn)移指令JCXZ(自學)語句格式:JCXZ短標號功能:(CX)=0(CX不減1),則程序轉(zhuǎn)移;否則,順序執(zhí)行。第32頁/共43頁循環(huán)程序的結(jié)構(gòu)㈡循環(huán)程序設(shè)計第33頁/共43頁【例】已知有幾個元素存放在以BUF為首址的字節(jié)存貯區(qū)中,試統(tǒng)計其中正元素的個數(shù)。(計數(shù)控制)顯然,每個元素為一個8位有符號二進制數(shù),統(tǒng)計其中正元素的個數(shù)可用循環(huán)程序?qū)崿F(xiàn)。其程序流程圖如圖所示。第34頁/共43頁【例】試編一個程序?qū)⒆謫卧狟UF中所含1的個數(shù)存入COUNT單元中。(條件控制)要測出BUF字單元所含1的個數(shù),首先將BUF中的數(shù)送給寄存器AX,然后將AX寄存器邏輯左移一次,如果CF=1,則表明AX中的最高位為1,則計數(shù)器CL計數(shù)1次,如果CF=0,表明AX最高位為0,這樣依次將最高位移入CF中去測試。移位之后,判斷AX的值是否為0,如果為0則結(jié)束循環(huán),不為0,則繼續(xù)循環(huán)。其流程圖如圖所示。第35頁/共43頁DATA SEGMENTBUFDW0011110010101011BCOUNT DB?DATA ENDSCODE SEGMENTASSUMEDS:DATA,
CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAX,BUFMOVCL,0;計數(shù)器為0L1:AND AX,AX JE L2 ;(AX)=0,結(jié)束循環(huán)
SHL AX,1 ;AX左移一位
JNC L1 INC CL ;產(chǎn)生進位,(CL)+1→CL JMP L1L2: MOV COUNT,CL MOV AH,4CH INT 21HCODE ENDS END START第36頁/共43頁DSEGSEGMENTDATADB80,85,86,71,79,96DB83,56,32,66,78,84DSEG ENDSCODE SEGMENTASSUMEDS:DSEG,CS:CODESTART:MOVAX,DSEGMOVDS,AXMOVBX,OFFSETDATAMOVCX,9L1:MOVAL,[BX]MOVSI,1MOVDX,CXL2:CMPAL,[BX][SI]JAEA1XCHGAL,[BX][SI]A1:INCSIDECDXJNZL2MOV[BX],ALINCBXLOOPL1CODEENDSENDSTART【例2】DATA中有10個無符號數(shù),將這些數(shù)按照從大到小的次序重新排序。(自學)第37頁/共43頁㈠調(diào)用和返回指令⑴調(diào)用指令
CALL標號段內(nèi)調(diào)用:
SP-2,IP入棧,標號偏移地址→IP。
段間調(diào)用:SP-2,CS的內(nèi)容入棧,SP-2,IP入棧,標號段地址→CS,標號偏移地址→IP。⑵返回指令RET
段內(nèi)的返回把SP所指的堆棧頂部的一個內(nèi)容彈回到指令指針I(yè)P中,且SP加2。段間返回:CS彈出,再加2。4.4.5子程序設(shè)計第38頁/共43頁⑴子程序的定義和調(diào)用定義:過程名PROC[NEAR/FAR]┆RET過程名ENDP㈡子程序設(shè)計CSEGSEGMENT┆CALLSUBT1┆SUBT1PROCFAR┆RETSUBT1ENDPCSEGENDSXSEGSEGMENT┆CALLSUBT1┆XSEGENDS第39頁/共43頁⑵子程序設(shè)計方法信息的保護與恢復(fù)主程序與子程序參數(shù)傳遞方式例如:PROGPROCPUSHAXPUSHBXPUSHCX;保護現(xiàn)場PUSHDX┆POPDXPOPCXPOPBX;恢復(fù)現(xiàn)場POPAXRET;返回斷點處PROGENDP①寄存器法②約定單元法③堆棧法第40頁/共43頁子程序應(yīng)用舉例【例】將一個給定的二進制數(shù)(字節(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小自考公共事業(yè)管理考試重點試題及答案
- 2025至2030年中國不銹鋼餐具盒市場分析及競爭策略研究報告
- 2025至2030年中國不銹鋼煎鍋市場現(xiàn)狀分析及前景預(yù)測報告
- 《認識百分數(shù)》(教學設(shè)計)-2024-2025學年六年級上冊數(shù)學人教版
- 五年級語文上冊 第三單元 10 牛郎織女(一)教學設(shè)計 新人教版
- 北京市第四中學高三化學 15天沖刺 專題六 氧化還原概念方程式攻略教學設(shè)計
- 第9課《論教養(yǎng)》教學設(shè)計 2024-2025學年統(tǒng)編版語文九年級上冊
- 江蘇省東??h八年級地理上冊 2.4 自然災(zāi)害教學設(shè)計 (新版)新人教版
- 小自考市場定位精細化測驗試題及答案
- 小自考行政管理真題演練試題及答案
- 消防設(shè)施操作員實戰(zhàn)試題及答案分享
- 2025年北京電子科技職業(yè)學院高職單招(數(shù)學)歷年真題考點含答案解析
- 山東省濱州市無棣縣2024-2025學年七年級上學期期末生物試題(原卷版+解析版)
- 新東方在國際教育領(lǐng)域的布局與市場機會
- 2025屆高三化學二輪復(fù)習 化學反應(yīng)原理綜合 課件
- T∕HGJ 12400-2021 石油化工儀表線纜選型設(shè)計標準
- GB/T 33592-2017分布式電源并網(wǎng)運行控制規(guī)范
- 入團志愿書(2016版本)(可編輯打印標準A4) (1)
- 煤礦機電運輸培訓(xùn).ppt
- 國家開放大學電大《小學數(shù)學教學研究》網(wǎng)絡(luò)課形考任務(wù)2題庫及答案(試卷號:1825)
- 無心磨床調(diào)整要訣
評論
0/150
提交評論