西安交大微機(jī)原理1261_第1頁(yè)
西安交大微機(jī)原理1261_第2頁(yè)
西安交大微機(jī)原理1261_第3頁(yè)
西安交大微機(jī)原理1261_第4頁(yè)
西安交大微機(jī)原理1261_第5頁(yè)
已閱讀5頁(yè),還剩26頁(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ǔ)言程序設(shè)計(jì)m_DATA SEGMENTm_DAT1DB

0F7H,

060H,

0ACH,

074H,

03BHm_DAT2 DB

0C1H,

036H,

09EH,0D5H,

020Hm_DATA ENDS

m_CODE SEGMENT

ASSUME

CS:m_CODE

,DS:m_DATA

Start:

MOV

AX, m_DATA

MOV

DS,

AX

MOV

CX,

5

MOV

SI,

0

CLCLOOPER:MOV

AL, m_DAT2[SI]

ADC m_DAT1[SI],AL

INC

SI

LOOP LOOPER

HLT

m_CODE ENDS

END數(shù)據(jù)段代碼段10000 m_DATA SEGMENT20000F760AC743B m_DAT1DB 0F7H,060H,0ACH, 074H,03BH30005C1369ED520 m_DAT2 DB 0C1H, 036H,09EH, 0D5H,020H4000AD00F4940C3F5 m_Float DD 3.14159,3.14,1.0548400000803F 60016 m_DATA ENDS7 80000 m_CODE SEGMENT9 ASSUME CS:m_CODE,DS:m_DATA

100000B8R Start: MOV AX, m_DATA

1100038ED8 MOV DS, AX120005B90005 MOV CX, 5130008BE0000 MOV SI, 014000BF8 CLC15000C8A840005R LOOPER: MOV AL, m_DAT2[SI]16001010840000R ADC m_DAT1[SI], AL 17001446 INC SI180015E2F5 LOOP LOOPER190017F4 HLT 200018 m_CODE ENDS21 ENDSegmentsandGroups:Name Length Align CombineClassM_CODE............. 0018 PARA NONE M_DATA............. 0016 PARA NONE Symbols:Name Type Value AttrLOOPER............. LNEAR 000C M_CODEM_DAT1............. LBYTE 0000 M_DATAM_DAT2............. LBYTE 0005 M_DATAM_FLOAT............ LDWORD 000A M_DATASTART............. LNEAR 0000 M_CODE@FILENAME........... TEXTaddb5 20SourceLines20TotalLines9Symbols0WarningErrors0SevereErrors機(jī)器語(yǔ)言001C:8A840500

MOVAL,[SI+0005]匯編語(yǔ)言Start:

MOV

AX, m_DATA高級(jí)語(yǔ)言Sum=Sum+X[i];匯編過(guò)程myfile.asm編輯程序匯編程序連接程序myfile.crfotherfiles.objmyfile.lstmyfile.objmyfile.mapmyfile.exe建立及匯編過(guò)程C>MASMMYFILE.ASMMicrosoft(R)MacroAssemblerVersion5.10Copyright(C)MicrosoftCorp1981,1988.Allrightsreserved.Objectfilename[MYFILE.OBJ]:Sourcelisting[NUL.LST]:MYFILE.LSTCross-reference[NUL.CRF]:47962+413345Bytessymbolspacefree0WarningErrors0SevereErrorsC>LINKMYFILE.OBJMicrosoft(R)OverlayLinkerVersion3.64Copyright(C)MicrosoftCorp1983-1988.Allrightsreserved.RunFile[MYFILE.EXE]:ListFile[NUL.MAP]:

Libraries[.LIB]:LINK:warningL4021:nostacksegment第1節(jié)匯編程序基礎(chǔ)6.1.1分段結(jié)構(gòu)data_seg1

SEGMENT

data_seg1

ENDS;data_seg2

SEGMENT

data_seg2

ENDS;code_seg

SEGMENT

ASSUME

CS:code_seg,

DS:data_seg1,

ES:data_seg2start:

MOV

AX,

data_seg1

MOV

DS,

AX

MOV

AX,

data_seg2

MOV

ES,

AX

code_seg

ENDS;

END

start

1.指令性語(yǔ)句

也稱可執(zhí)行性語(yǔ)句,表示為CPU指令系統(tǒng)中各種用助記符形式的機(jī)器指令。這些指令在匯編過(guò)程中最終轉(zhuǎn)換為目標(biāo)程序的機(jī)器代碼,在運(yùn)行該程序時(shí)被執(zhí)行。(機(jī)器執(zhí)行)

MOV

AX, data_seg2

2.指示性語(yǔ)句

常稱為偽指令,這些指令在匯編過(guò)程中被執(zhí)行,指示相應(yīng)的匯編操作,其自身并不產(chǎn)生任何目標(biāo)代碼。(匯編器識(shí)別)

m_DAT1 DB

0F7H,060H,

0ACH,

074H,

03BH6.1.2語(yǔ)句類型start:

MOV

AX, b

a DW

?;定義變量a6.1.3語(yǔ)句格式;OUTPUT: returnpositive16-bitquotientinACC6.1.3.1

名字可分為變量和標(biāo)號(hào)兩種,具有段基址、段內(nèi)偏移地址及類型等三種屬性。段基址與段內(nèi)偏移地址可通稱為該名字所在位置的地址屬性。

命名規(guī)則:字母 A-Z,a-z

數(shù)字 0-9

特殊字符 ?_$@.

Start:

MOV

AX, b m_Volt03

DW

?;定義變量aSymbols:

Name TYPE Value AttrLOOPER............. L NEAR

000C M_CODEM_DAT1............. L BYTE

0000 M_DATAM_DAT2............. L BYTE

0005 M_DATASTART............. L NEAR

0000 M_CODE變量的類型屬性為所定義的數(shù)據(jù)類型

(如,字節(jié)BYTE、字WORD、雙字DWORD等)標(biāo)號(hào)為可執(zhí)行語(yǔ)句的符號(hào)地址,其類型屬性表示可指向的距離 (如,近程N(yùn)EAR、遠(yuǎn)程FAR等)6.1.3.2

助記符項(xiàng)(1)指令性語(yǔ)句

MOV, ADD,CALL, JZ…(2)指示性語(yǔ)句(偽指令)

SEGMENT, DB,EQU…

6.1.3.3

操作數(shù)項(xiàng)(1)

常數(shù)

給出具體的數(shù)據(jù),可以是數(shù)字常量或字符常量。

數(shù)字默認(rèn)十進(jìn)制, 如

1234D或1234;

數(shù)字后加B表示二進(jìn)制數(shù), 如

1010B;

數(shù)字后加H表示十六進(jìn)制數(shù), 如0ab00H;

字符常量,用單引號(hào)表示。 如‘1234’ 操作數(shù)可以是常數(shù)、寄存器、存儲(chǔ)器操作數(shù)、標(biāo)號(hào)名、過(guò)程名或表達(dá)式等。data1DB12,34,56 ;十進(jìn)制data2DB12H,0afH,56H ;十六進(jìn)制

string DB‘Badcommand’ ;字符串

SubAL,‘A’ ;字符

add bx, 2(2)表達(dá)式匯編程序?qū)Ρ磉_(dá)式進(jìn)行運(yùn)算后,得到一個(gè)確定的數(shù)值,再把這個(gè)數(shù)值匯編到指令中VIDEO_BUFDB80*2DUP(?)ADDAX,VIDEO_BUF+2表達(dá)式中的操作符算術(shù)運(yùn)算符(+、-、*、/、MOD)邏輯運(yùn)算符(AND、OR、NOT、XOR)關(guān)系運(yùn)算符(EQ、NE、GT、GE、LT、LE)數(shù)值返回操作符(SEG、OFFSET)MOVAL,

(OFFSETY-OFFSETX)LE1286.1.3.4注釋項(xiàng)

注釋由分號(hào)引出,用來(lái)說(shuō)明語(yǔ)句或程序的功能。匯編程序?qū)Ψ痔?hào)后的內(nèi)容不做處理。(1)注釋程序,增強(qiáng)程序可讀性;(2)可放在語(yǔ)句最前面,暫時(shí)注釋某語(yǔ)句,供程序調(diào)試用。;**********************************************************************;FunctionName: divu;Description: PROGRAMtounsigneddivision; positive31-bit(unsignedlong)dividend; positive16-bit(unsignedint)divisor;INPUT: (dividend,divisor);OUTPUT: returnpositive16-bitquotientinACCL ;TIME: 6.2us ;**********************************************************************

sub al,‘a(chǎn)’-10 ;‘a(chǎn)’~‘f’cmpal,0ahjlexit ;<‘a(chǎn)’退出cmpal,10hjge exit ;>’f’退出6.1.4偽指令處理器選擇偽操作段定義偽操作數(shù)據(jù)定義及存儲(chǔ)器分配偽操作地址計(jì)數(shù)器與對(duì)準(zhǔn)偽操作表達(dá)式賦值偽操作6.1.4.1處理器選擇偽指令

.8086選擇8086指令系統(tǒng)

.286選擇80286指令系統(tǒng)

.286P選擇保護(hù)模式下的80286指令系統(tǒng)

.386選擇80386指令系統(tǒng)

.386P選擇保護(hù)模式下的80386指令系統(tǒng)

.486選擇80486指令系統(tǒng)

.486P選擇保護(hù)模式下的80486指令系統(tǒng)

.586選擇Pentium指令系統(tǒng)

.586P選擇保護(hù)模式下的Pentium指令系統(tǒng)6.1.4.2段定義偽指令段名

SEGMENT[定位][組合][類別][屬性] …………段名

ENDS定位類型align_type

PARABYTEWORDDWORDPAGE組合類型combine_type

PRIVATEPUBLICCOMMONSTACKATexp使用類型use_type

USE16USE32(4)類別‘class’mY_Data

SEGMENTa DW

?b DW

3c DW

5mY_Data

ENDS

;——————————————————————

ASSUME

CS:mY_Code,

DS:

mY_DatamY_Code

SEGMENTStart:

MOV

AX, b

ADD

AX, c

MOV

BX,

OFFSETa MOV

[BX],

AX

mY_Code

ENDS

;————————————6.1.4.3數(shù)據(jù)定義偽指令[變量] DB操作數(shù)[,操作數(shù),…][;注釋] DW DDDATA_BYTEDB10,4,10H,?DATA_WORDDW100,100H,-5,?

-

0AH

04H

10H

-

64H

00H

00H01H

FBH

FFH

-DATA_BYTE

DATA_WORD

ARRAYDB‘HELLO’DB‘AB’DW‘AB’

48H

45H

4CH

4CH

4FH

41H

42H

42H41H

ARRAY

變量名偏移地址(H)內(nèi)容(H)說(shuō)明

DATA_BYTE00000A100001044000210160003?預(yù)留

DATA_WORD000464256000500000600-50007010008FB‘Y’0009FF000A79‘X’000B78000C74‘Z’000D00空

DATA_BYTE DB 10,4,10H,?DATA_WORD DW 100,100H,-5,’XY’,’Z’nouse

DW

8

DUP

(12)s_dat

DW

0F7H,

060H,

0ACH,

0,

-8

DW

10,

036H,

-8,

'

溫馨提示

  • 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)論