微機(jī)原理第4章-匯編語(yǔ)言及匯編程序設(shè)計(jì)剖析課件_第1頁(yè)
微機(jī)原理第4章-匯編語(yǔ)言及匯編程序設(shè)計(jì)剖析課件_第2頁(yè)
微機(jī)原理第4章-匯編語(yǔ)言及匯編程序設(shè)計(jì)剖析課件_第3頁(yè)
微機(jī)原理第4章-匯編語(yǔ)言及匯編程序設(shè)計(jì)剖析課件_第4頁(yè)
微機(jī)原理第4章-匯編語(yǔ)言及匯編程序設(shè)計(jì)剖析課件_第5頁(yè)
已閱讀5頁(yè),還剩57頁(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)介

《微機(jī)原理及應(yīng)用》主講教師廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳第四章

匯編語(yǔ)言及匯編程序設(shè)計(jì)一、概述

二、偽指令三、表達(dá)式及運(yùn)算符四、宏指令五、匯編語(yǔ)言程序的上機(jī)過(guò)程六、匯編程序的設(shè)計(jì)過(guò)程七、匯編程序基本設(shè)計(jì)方法八、系統(tǒng)功能調(diào)用例題

作業(yè)瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳一、概述匯編語(yǔ)言是一種面向CPU指令系統(tǒng)的程序設(shè)計(jì)語(yǔ)言。指令格式:1、標(biāo)號(hào)是指該指令的符號(hào)地址,以冒號(hào)結(jié)束;2、用助記符表示操作碼,是指令名稱的代表符號(hào),是語(yǔ)句中的關(guān)鍵字,不可缺?。滑|第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自

動(dòng)化學(xué)院自動(dòng)控制系陳一、概述(續(xù)上頁(yè))3、用符號(hào)代表操作數(shù)或操作數(shù)地址。操作數(shù)是本指令執(zhí)行需要的數(shù)據(jù)。有些指令不需要指明操作數(shù),可以默認(rèn);有些指令需要兩個(gè)操作數(shù);還有些操作數(shù)可以用表達(dá)式。4

、注釋項(xiàng)是可選項(xiàng),用分號(hào)開始?,|第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控

制系陳一、概述(續(xù)上頁(yè))用匯編語(yǔ)言編寫的程序稱為源程序,常用的匯編程序有ASM-86和宏匯編MASM-86。匯編語(yǔ)言源程序的組成部分:①可以使用CPU指令系統(tǒng)所提供的指令(硬指令);②可以使用各種符合匯編語(yǔ)法的表達(dá)式,運(yùn)算符以及自行定義生成滿足需要的目標(biāo)代碼的指令?,|第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)動(dòng)化學(xué)院自動(dòng)控制系1、標(biāo)號(hào)8086/8088匯編語(yǔ)言中使用的標(biāo)號(hào)必須遵循下列自

規(guī)則:(1)大小寫字母;(2)數(shù)字0~9;(3)某些特殊字符(@,_,?)(4)第一個(gè)字符不能是數(shù)字,“?”不能單獨(dú)作為標(biāo)號(hào)。

(5)標(biāo)號(hào)的有效長(zhǎng)度是31;有效標(biāo)號(hào):START

MY_PROGRAM無(wú)效標(biāo)號(hào):MAIN%1BETA陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)動(dòng)化學(xué)院自動(dòng)控制系二、偽指令偽指令是告訴匯編程序生成目標(biāo)代碼的指令語(yǔ)自

句。1、符號(hào)定義偽指令2、內(nèi)存數(shù)據(jù)定義偽指令3、段定義偽指令4、段寄存器說(shuō)明偽指令5、定位偽指令陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)

控制系1、符號(hào)定義偽指令EQU偽指令等號(hào)(賦值)偽指令

(3)解除符號(hào)定義偽指令陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳(1)EQU偽指令偽指令格式:<符號(hào)名>EQU<表達(dá)式>指令功能:

給符號(hào)名賦值。符號(hào)名可以由程序員取定,表達(dá)式應(yīng)該是可以計(jì)算得出一個(gè)具體值。例:PORT

EQU

88H

;定義符號(hào)PORT代表88HDATA

EQU

PORT+2

;定義符號(hào)DATA代表;PORT+2注意:①用EQU定義的符號(hào),不能重新再定義,除非用PURGE偽指令解除;②如果在表達(dá)式中用了其他符號(hào),必須事先定義?,|第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系(2)等號(hào)(賦值)偽指令偽指令格式:<符號(hào)名>=<表達(dá)式>指令功能:

與EQU類似,唯一的區(qū)別是“=”可以隨時(shí)對(duì)符號(hào)名賦新值,而不必使用PURGE偽指令。例:PORT=88H

;定義符號(hào)PORT代表88HDATA=PORT+2

;定義符號(hào)DATA代表PORT+2陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制

系(3)解除符號(hào)定義偽指令偽指令格式:PURGE

符號(hào)1,

符號(hào)2,

…指令功能:

撤消用EQU賦值的符號(hào)名,以便于賦予新值。例:PURGE

PORT,DATA

;撤消用EQU對(duì)PORT、;DATA的賦值陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系2、內(nèi)存數(shù)據(jù)定義偽指令①格式: [變量]

命令

參數(shù)1,

參數(shù)2,

…功能:

數(shù)據(jù)定義語(yǔ)句用來(lái)分配存儲(chǔ)單元。數(shù)據(jù)定義語(yǔ)句的命令有:DBDWDD定義字節(jié)數(shù)據(jù)定義字?jǐn)?shù)據(jù)

定義雙字?jǐn)?shù)據(jù)DQ定義8字節(jié)數(shù)據(jù)DT

定義10字節(jié)數(shù)據(jù)陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工

業(yè)大學(xué)自動(dòng)化學(xué)院自

動(dòng)控制系2、內(nèi)存數(shù)據(jù)定義偽指令②復(fù)制操作符格式:

<復(fù)制次數(shù)>

DUP

數(shù)據(jù)1,數(shù)據(jù)2,…功能:匯編程序把所定義的數(shù)據(jù)按先后次序連續(xù)分配存儲(chǔ)空間,所起的名稱只代表第一個(gè)單元的字符。例題陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系2、內(nèi)存數(shù)據(jù)定義偽指令例:…VAR1

DB

32H,‘ABC’VAR2 DW

1234H,40H,‘AB’DD

12345678HDB

?,11000011BARRY1

DB

2

DUP(0,1)ARRY2 DW

2DUP(?,1)…陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系3、段定義偽指令格式: <段名>

SEGMENT…<段名>

ENDS陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系4、段寄存器說(shuō)明偽指令格式:ASSUME

段寄存器:段名1[,段寄存器:段名2,…]功能:該偽指令告訴匯編程序在匯編時(shí),各個(gè)段寄存器所對(duì)應(yīng)的邏輯段基址。注意:除了CS,所有段寄存器的實(shí)際值還必須用傳送指令在執(zhí)行時(shí)賦值陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系5、定位偽指令?格式:

ORG

<表達(dá)式>功能:起址定位偽指令告訴匯編程序,以下的程序或數(shù)據(jù)從表達(dá)式指定的偏移地址開始存放;?格式:

EVEN功能:偶地址定位偽指令告訴匯編程序,以下的程序或數(shù)據(jù)從偶地址開始存放。陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)動(dòng)化學(xué)院自動(dòng)控制系三、表達(dá)式及運(yùn)算符在匯編語(yǔ)言中,指令的操作數(shù)除了可以是常數(shù)、自

寄存器、變量和標(biāo)號(hào)外,還可以是表達(dá)式。表達(dá)式是由常數(shù)、寄存器、變量、標(biāo)號(hào)和專用運(yùn)算符組合而成。在程序匯編時(shí),匯編程序自動(dòng)把這些表達(dá)式計(jì)算出來(lái),形成具體的指令操作數(shù)。1、常數(shù)、變量和標(biāo)號(hào)2、表達(dá)式及運(yùn)算符陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系1、常數(shù)、變量和標(biāo)號(hào)常數(shù)

包括數(shù)值型常數(shù)和字符型常數(shù)。如:12H,1234H,’AB’變量變量代表存放在存儲(chǔ)單元中的數(shù)據(jù)。定義后的變量有三個(gè)屬性:段屬性表示變量所在的邏輯段;偏移量屬性表示變量所在邏輯段中的偏移地址;(3)類型屬性表示變量占用的存儲(chǔ)單元數(shù),DB、DW、DD、DQ、DT。陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系1、常數(shù)、變量和標(biāo)號(hào)標(biāo)號(hào)是指令目標(biāo)代碼的符號(hào)地址。在轉(zhuǎn)移指令中常用標(biāo)號(hào)代替具體轉(zhuǎn)移地址,標(biāo)號(hào)的使用使編寫匯編語(yǔ)言程序時(shí),不必考慮程序匯編、連接后系統(tǒng)分配給指令代碼的實(shí)際地址。標(biāo)號(hào)同樣有三個(gè)屬性:段屬性表示指令代碼所在的邏輯段;偏移量屬性表示指令代碼所在的邏輯段中的偏移地址;距離屬性表示標(biāo)號(hào)可作段內(nèi)轉(zhuǎn)移或段間轉(zhuǎn)移(NEAR、FAR)。陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)

大學(xué)自動(dòng)化

學(xué)院自動(dòng)控制

系2、表達(dá)式及運(yùn)算符表達(dá)式由操作數(shù)和運(yùn)算符組成。其中,操作數(shù)可以是常數(shù)、變量、寄存器和標(biāo)號(hào)。運(yùn)算符包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、分析運(yùn)算符和屬性運(yùn)算符五類運(yùn)算。注意:運(yùn)算符的先后次序。陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控

制系五、匯編語(yǔ)言程序的上機(jī)過(guò)程建立匯編語(yǔ)言的環(huán)境,典型的匯編語(yǔ)言開發(fā)環(huán)境都包含4種工具:1、編輯程序2、匯編程序3、連接程序4、匯編程序的上機(jī)過(guò)程陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系1、編輯程序編輯程序是用來(lái)輸入?yún)R編語(yǔ)言源程序的工具,包括EDIT.EXE,EDLIN.EXE等;匯編語(yǔ)言是以文本格式保存的;匯編程序的源程序必須以ASM作為擴(kuò)展名;輸入和編輯源程序時(shí)必須遵循匯編語(yǔ)言的語(yǔ)法規(guī)定。匯編程序的基本結(jié)構(gòu)例題實(shí)際操作:編輯源程序

TEST11.ASM陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系匯編程序的基本結(jié)構(gòu)DATAA……DATAASTACKA……SEGMENT;數(shù)據(jù)段內(nèi)定義各類程序執(zhí)行需要的相關(guān)的數(shù)據(jù)ENDSSEGMENT

STACK;根據(jù)具體程序的需要,定義堆棧段供程序執(zhí)行過(guò)程;中保存臨時(shí)數(shù)據(jù)ENDSSTACKACODEASEGMENTASSUME

CS:CODEA,DS:DATAA,SS:STACKASTART:

MOV

AX,DATAAMOV

DS,AX……;送數(shù)據(jù)段基址;完成具體操作的指令序列CODEA

ENDSENDSTART陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系實(shí)際操作實(shí)現(xiàn)(

X+Y→Z,源程序文件名:TEST11.ASM)業(yè)

DATA1

SEGMENT;數(shù)據(jù)段DB

05HDB

04HDB

?DATA1CODE1ENDSSEGMENT

;代碼段ASSUME

CS:CODE1,DS:DATA1START:MOV

AX,DATAMOV

DS,AXMOV

AL,X

ADD

AL,Y

MOV Z,

ALMOV

AH,4CH;數(shù)據(jù)段基址→AX;

AX→DS;內(nèi)存單元X的數(shù)據(jù)→AL;內(nèi)存單元Y的數(shù)據(jù)+AL→AL,?X+Y→AL;AL→內(nèi)存單元Z,?求和結(jié)果送回Z;送功能號(hào);系統(tǒng)功能調(diào)用,返回操作系統(tǒng)INT

21HCODE1

ENDS陳瑋ENDSTART第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)

控制系2、匯編程序匯編程序用來(lái)把源程序翻譯成機(jī)器碼,包括ASM.EXE,MASM.EXE;匯編程序翻譯源程序,產(chǎn)生一個(gè)目標(biāo)代碼文件,與源程序文件名相同,擴(kuò)展名為OBJ。實(shí)際操作:產(chǎn)生目標(biāo)文件TEST11.OBJ陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)動(dòng)化學(xué)院自

動(dòng)控制系3、連接程序通過(guò)匯編產(chǎn)生的是OBJ文件是二進(jìn)制目標(biāo)文件,自

但用的是浮動(dòng)地址,不能直接運(yùn)行,

必須用連接程序LINK.EXE連接和定位。實(shí)際操作:產(chǎn)生可執(zhí)行文件TEST11.EXE陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大

學(xué)自動(dòng)化學(xué)院自動(dòng)控

制系4、匯編程序的上機(jī)過(guò)程實(shí)際操作演示陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳瑋;數(shù)據(jù)段開始

test1.asmdata1

segmentx

db

05hy

db

04hz

db

?buff

db‘5+4=

$‘;定義一個(gè)數(shù)據(jù)串,數(shù)據(jù)串規(guī)定以$結(jié)尾,為了;顯示’5+4=’data1

endscode1

segment;代碼段開始assume

cs:code1,ds:data1

;start:;將數(shù)據(jù)段基址→ax;

ax→ds;內(nèi)存數(shù)據(jù)x→al;內(nèi)存數(shù)據(jù)Y+al→al,即X+Y

→almovax,data1movds,

axmov

al,

x

add

al,

y

mov

z,

allea

dx,

buffmovah,

09hint21hmov

dl,zadddl,30hmov

ah,

02hint21H;al→Z,即X+Y

→Z;裝載buff的有效地址;送功能號(hào);系統(tǒng)功能調(diào)用,顯示屏顯示字符串’5+4=’;將z送dl;將z的值轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼值;送功能號(hào);系統(tǒng)功能調(diào)用,將x+y的和z以單字符形式在顯;示屏上顯示出來(lái);送功能號(hào);系統(tǒng)功能調(diào)用,返回DOS狀態(tài)movah,4chint21hcode1

endsend

start第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控

制系六、匯編程序的設(shè)計(jì)過(guò)程1、分析問(wèn)題確定算法2、繪制程序流程圖(要求同學(xué)們從現(xiàn)在開始編寫程序前養(yǎng)成先繪制流程圖的習(xí)慣)3、編寫代碼陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自

動(dòng)控制系七、匯編程序基本設(shè)計(jì)方法1、

簡(jiǎn)單程序

作業(yè)2、分支程序3、循環(huán)程序4、子程序陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)動(dòng)化學(xué)院自動(dòng)

控制系1、簡(jiǎn)單程序簡(jiǎn)單程序是指順序結(jié)構(gòu)程序,在程序中不包含自

任何轉(zhuǎn)移類指令。

執(zhí)行時(shí)按指令的先后次序從第一條開始逐條執(zhí)行,直至程序結(jié)束。例題陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系例題1、有X,Y兩個(gè)16位數(shù)3456H和0ABCDH,求兩數(shù)之和,并將結(jié)果送到Z單元。解:

①編寫流程圖陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳例題

程序清單DATA

SEGMENTDW

3456HDW

0ABCDHDW

0DATA

ENDS

;設(shè)置數(shù)據(jù)段,取名DATACODE

SEGMENTASSUME

DS

:DATA,CS:CODESTART

:MOV

AX,DATAMOV

DS,AXLEA

SI,XLEADI,

YMOV

AX,[SI]ADD

AX,[DI]MOV

Z,

AXMOV

AH,

4CH;取數(shù)碼段DATA段址至AX;段地址送DS;將X的有效地址送S1;將Y的有效地址送D1;將X的值送AX;AX+Y的值送回AX;將AX的值送到存儲(chǔ)單元Z;設(shè)置功能號(hào);系統(tǒng)功能調(diào)用,返回DOSINT

21HCODEENDSEND

START瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化

學(xué)院自

動(dòng)控制系作業(yè)P.1262、4、5、7、12陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化

學(xué)院自

動(dòng)控制系陳瑋2、分支程序分支程序就是利用轉(zhuǎn)移指令,控制計(jì)算機(jī)執(zhí)行某段程序或不執(zhí)行某段程序。兩路分支多路分支例題第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)

控制系陳

瑋例題1、內(nèi)存中有一個(gè)8位帶符號(hào)數(shù),求其絕對(duì)

值,并將結(jié)果放回原處。答:編寫流程圖第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)程序清單廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳瑋例題

程序清單DATA2SEGMENTM

DB

05H;第二個(gè)程序換成-5,即0fbhDATA2CODE2ENDSSEGMENTASSUMECS:CODE2,DS:DATA2START: MOV

AX,DATA2MOV

DS,AXLEA

SI,MMOV

AL,[SI]AND

AL,ALJNSDONENEG

ALDONE:

MOV[SI],AL;送段地址至DS;取M的地址指針;取帶符號(hào)數(shù);判斷符號(hào)位;SF=0,轉(zhuǎn)移到DONE;SF=1,AL<0,AL求補(bǔ)(即0-AL);絕對(duì)值送回原內(nèi)存單元;系統(tǒng)功能調(diào)用,顯示該數(shù)值CODE2MOV

DL,

[SI]ADD

DL,

30HMOV

AH,

02HINT

21HMOV

AH,4CHINT

21HENDSEND

START第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系例題2、編寫程序?qū)崿F(xiàn)函數(shù)。1 (當(dāng)X>0)Y=

0 (當(dāng)X=0)9 (當(dāng)X<0)解:編寫程序清單程序清單陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)自動(dòng)化學(xué)院自

動(dòng)控制系例題DATAXY程序清單_數(shù)據(jù)段SEGMENT;另外兩組分別是7FH,00HDATAXYX

DB

8FHY

DB

?ENDS陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳瑋例題

程序清單_代碼段CODE

SEGMENTASSUME

CS:CODE,DS:DATAXYSTART:

MOV

AX,DATAXYMOV

DS,AXLEASI,

XMOV

AL,[SI]ANDAL,

ALJNSOTHERMOV

Y,

09HJMP

DONEOTHER:

JNZ

PLUSMOV

Y,00H

JMP

DONEPLUS:

MOVY,01H;送段地址;取X的指針;將X的值送AL;自身與,取符號(hào)標(biāo)志位;SF=0,轉(zhuǎn)移到OTHER;SF=1,則X<0;ZF=0轉(zhuǎn)移到PLUS;ZF=1,則X=0;SF=0,ZF=0,則X>0DONE:;系統(tǒng)功能調(diào)用,顯示Y的值CODE2MOVDL,

YADDDL,

30HMOVAH,

02HINT

21HMOV

AH,4CHINT

21HENDSEND

START第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自

動(dòng)化學(xué)院自動(dòng)控制系陳瑋3、循環(huán)程序循環(huán)程序就是控制計(jì)算機(jī)反復(fù)執(zhí)行一段指令序列的程序結(jié)構(gòu)。非零次循環(huán)結(jié)構(gòu)零次循環(huán)結(jié)構(gòu)例題第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系例題1、統(tǒng)計(jì)字節(jié)數(shù)據(jù)Z的1的個(gè)數(shù),將結(jié)果放在RESULT內(nèi)。解:編寫流程圖陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)程序清單廣

東工業(yè)大學(xué)自動(dòng)學(xué)院自動(dòng)控制系例題DATAXY程序清單——數(shù)據(jù)段SEGMENTX

DB

0FFH

;第二個(gè)程序換成-5,即0fbhRESULT DB?化

DATAXY

ENDS陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳例題

程序清單

代碼段CODE

SEGMENTASSUME

CS:CODE,DS:DATAXYSTART: MOV

AX,DATAXYSUM:MOV

DS,AXXOR

BL,BLMOV

CX,08HLEA

SI,XMOV

AL,[SI]SHR

AL,1JNCNONEINC

BL;送段地址至DS;累加器BL清0;循環(huán)次數(shù)送CX;取X的指針;取X送AL;邏輯右移1位;CF=0,轉(zhuǎn)移到NONE;CF=1,BL+1→BLNONE:LOOP

SUMMOV

RESULT,BL;統(tǒng)計(jì)值送RESULT內(nèi)存單元

MOVDL,RESULTADDDL,

30HMOVAH,

02H;系統(tǒng)功能調(diào)用,顯示該統(tǒng)計(jì)數(shù)值CODEINT

21HMOV

AH,4CHINT

21HENDS瑋END

START第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)動(dòng)化學(xué)院自控制

系4、子程序一個(gè)程序中,當(dāng)在不同的地方需要多次使用某自

段程序時(shí),我們常將這段程序單獨(dú)編寫成一個(gè)程序段,稱為子程序/過(guò)程。子程序的定義格式子程序的調(diào)用動(dòng)

(3)編寫子程序的注意事項(xiàng)陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系(1)子程序的定義格式格式1:子程序名

PROC…RET子程序名ENDP格式2:子程序名:…RET陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化

學(xué)院自動(dòng)控制系(2)子程序的調(diào)用格式:CALL

子程序名陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)動(dòng)化學(xué)院自動(dòng)控制系(3)編寫子程序的注意事項(xiàng)1、現(xiàn)場(chǎng)保護(hù):保護(hù)調(diào)用子程序的現(xiàn)場(chǎng),即保護(hù)自

子程序中會(huì)用到的寄存器,

將這些寄存器入棧;2、功能子程序:子程序要完成的功能;3、恢復(fù)現(xiàn)場(chǎng):為了使計(jì)算機(jī)返回到主程序調(diào)用時(shí)的狀態(tài),將入棧的數(shù)據(jù)出棧。注意順序!例題:子程序的基本框架陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系子程序的基本框架設(shè)某一子程序中要用到寄存器BX,CX,SI,DI則:ABC:;子程序的功能程序PUSH

BXPRSH

CXPUSH

SIPUSH

DI……POP

DIPOP

SIPOP

CXPOP

BXRET陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)制系陳例題1編寫統(tǒng)計(jì)X數(shù)據(jù)中的“1”的個(gè)數(shù)子程序,并編寫主程序調(diào)用。子程序如下:ABC:

PUSH

BXPUSH

CX;累加器BL清0;循環(huán)次數(shù)送CX;邏輯右移1位;CF=0,轉(zhuǎn)移到NONE;CF=1,BL+1→BL;AL里保存的?“1”的統(tǒng)計(jì)個(gè)數(shù)XOR

BL,BLMOV

CX,08HSUM:SHR

AL,1JNCNONEINC

BL控

NONE:

LOOP

SUMMOVAL,

BLPOP

CXPOP

BXRET瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳例題1

主程序_數(shù)據(jù)段_堆棧段DATAXY

SEGMENTX

DB

0FFHSX

DB

?DATAXY

ENDS;----------------------STACK

SEGMENTDW

100DUP(?)STACK

ENDS瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳例題1

主程序_代碼段CODE1

SEGMENTASSUMECS:CODE1,

DS:DATAXY,SS:STACKSTART:;系統(tǒng)功能調(diào)用,顯示該統(tǒng)計(jì)數(shù)值MOVAX,

DATAMOV

DS,

AXLEABX,

XMOV

AL,[BX]CALL

ABCMOV

[BX+1],

ALMOV

DL,

SXADD

DL,

30HMOV

AH,

02HINT

21HMOV

AH,4CHINT

21H;

子程序插入此處CODE1

ENDSEND

START瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系例題2、將一字節(jié)無(wú)符號(hào)二進(jìn)制數(shù)轉(zhuǎn)換為兩位十進(jìn)制數(shù)的ASCII碼值,并存放在其后的兩個(gè)字節(jié)。(顯示程序用子程序編寫)。解:編寫流程圖:陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系程序——數(shù)據(jù)段data1

segment;可任取<100的無(wú)符號(hào)字節(jié)數(shù)據(jù)x

db

2ahy

db

?z

db

?buff db'2ah=$'data1

ends陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系陳代碼段:code1segmentassume

cs:code1,ds:data1start:

movax,data1movds,axmov

al,xcbwmovbl,0ahdiv

blmovy,almovz,ahleadx,buffmovah,09hint

21h

mov

al,y;上接左下call

dispmov

al,zcall

dispjmp

eenddisp: movdl,aladddl,30hmovah,02hint

21hreteend: movah,4chint

21hcode1

endsend

start;下接右上瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣

東工業(yè)大學(xué)動(dòng)化學(xué)院自動(dòng)控制系思考題試編制程序?qū)⒁粋€(gè)字?jǐn)?shù)據(jù)用十六進(jìn)制數(shù)的形式顯自

示在屏幕上。陳瑋第4章匯編語(yǔ)言及匯編程序設(shè)計(jì)廣東工業(yè)大學(xué)自動(dòng)化學(xué)院自動(dòng)控制系八、系統(tǒng)功能調(diào)用MS-DOS是80

溫馨提示

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