東南大學信息學院微機實驗報告三_第1頁
東南大學信息學院微機實驗報告三_第2頁
東南大學信息學院微機實驗報告三_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、實驗三簡單編程練習姓名:學號:1在一個數(shù)據(jù)塊中找出最大數(shù)。假設有數(shù)據(jù)22、46、32、72、84、16,且為不帶符號的正整數(shù),數(shù)據(jù)塊的長度放在CX寄存器中,找出的最大數(shù)存放在以MAXN為符號的單元中。程序:DATASEGMENTNUMDB22,46,32,72,84,16MAXNDB?DATAENDSMAINSEGMENTASSUMECS:MAIN,DS:DATASTART:MOVAX,DATAMOVDS,AX將DATA地址傳送到DS中MOVCX,5將長度5傳送到CX中MOVAL,00;將AL置0LEABX,NUM將NUM的偏移地址傳送到BX中AGAIN:MOVAL,BXCMPAL,BX+1J

2、NBENEXTMOVAL,SI+1MOVMAXN,AL;將NUM中的數(shù)進行比較,并將較大的數(shù)傳送到MAXN中NEXT:INCBXMOVMAXN,ALLOOPAGAIN重復進行AGAIN選出最大數(shù)MAINENDSENDSTART結(jié)果:DS:0006=54H2求無符號字節(jié)數(shù)據(jù)之和,和數(shù)為8位二進制數(shù)。假設有數(shù)據(jù)38、55、26、12、23,數(shù)據(jù)塊的長度存放在CX寄存器中,和數(shù)存放在以SUM為符號的單兀中。程序:DATASEGMENTNUMDB38,55,26,12,23SUMDB?DATAENDSMAINSEGMENTASSUMECS:MAIN,DS:DATASTART:MOVAX,DATAMOV

3、DS,AX將DATA地址傳送到DS中SUBAX,AX將AX置零MOVCX,4;將數(shù)據(jù)塊長度傳送到CX中MOVAL,BXLEABX,NUM將NUM的偏移地址傳送到BX中AGAIN:MOVAH,BX+1ADCAL,AHINCBXLOOPAGAINMOVSUM,AL;將數(shù)據(jù)塊中的數(shù)據(jù)進行相加,并將得到結(jié)果傳送到SUM中MAINENDSENDSTART結(jié)果:DS:0005=9AH3.求無符號字節(jié)數(shù)據(jù)之和,和數(shù)為16位二進制數(shù)。假設有數(shù)據(jù)58、25、45、73、64、43,數(shù)據(jù)塊的長度存放在CX寄存器中,和數(shù)存放在以SUM為符號的單元中。程序:DATASEGMENTNUMDB58,25,45,73,64

4、,43SUMDW?DATAENDSMAINSEGMENTASSUMECS:MAIN,DS:DATASTART:MOVAX,DATAMOVDS,AX將DATA地址傳送到DS中SUBAX,AX將AX置零MOVCX,4;將數(shù)據(jù)塊長度傳送到CX中MOVAL,BXLEABX,NUM將NUM的偏移地址傳送到BX中AGAIN:MOVAH,BX+1ADCAL,AHINCBXLOOPAGAINMOVSUM,AL;將數(shù)據(jù)塊中的數(shù)據(jù)進行相加,并將得到結(jié)果傳送到SUM中MAINENDSENDSTART結(jié)果:DS:0006=0134H4求兩個十進制數(shù)相乘的積(56093*5=?),被乘數(shù)和乘數(shù)均以非組合BCD碼表示,并

5、存放在內(nèi)存中,乘積存放在以SUM為符號的單兀中。程序:DATASEGMENTNUM1DB03,09,00,06,05NUM2DB05SUMDB6DUP(00)DATAENDSMAINSEGMENTASSUMECS:MAIN,DS:DATASTART:MOVAX,DATAMOVDS,AX將DATA地址傳送到DS中SUBAX,AX將AX置零LEASI,NUM2將NUM2的偏移地址傳送到SI中MOVDL,SI;將SI傳送到DL中LEASI,NUM1將NUM1的偏移地址傳送到SI中LEADI,SUM將SUM的偏移地址傳送到DI中MOVCX,5;將數(shù)據(jù)塊長度傳送到CX中AGAIN:MOVAL,SIMUL

6、DLINCSIAAMADDAL,DIAAAMOVDI,ALINCDIMOVDI,AHLOOPAGAINMOVSUM,AL;將數(shù)據(jù)塊中的數(shù)據(jù)進行相乘,并將得到結(jié)果傳送到SUM中MAINENDSENDSTART結(jié)果:DS:0006-DS:000B中的內(nèi)容分別為:05,06,04,00,08,02即56093*5=2804655試分別用數(shù)據(jù)傳送指令和串傳送指令編寫程序,將以STR1為首地址的字節(jié)存儲單元中的數(shù)據(jù)30H、31H、32H、33H、34H、35H、36H、37H、38H、39H、40H、41H、42H、43H、44H45H,傳送到以STR2為首地址的字節(jié)存儲單元中。程序:數(shù)據(jù)傳送:DATA

7、SEGMENTSTR1DB30H,31H,32H,33H,34HDB35H,36H,37H,38H,39HDB40H,41H,42H,43H,44H,45HCOUNTEQU$-STR1STR2DBCOUNTDUP(0)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AX將DATA地址傳送到DS中LEASI,STR將STR1的偏移地址傳送到SI中LEADI,STR2#STR2的偏移地址傳送到DI中MOVCX,COUNT將數(shù)據(jù)塊長度傳送到CX中NEXT:MOVAL,SIMOVDI,ALINCSIINCDILOOPNEXT#

8、STR1中的數(shù)據(jù)傳送到STR2中CODEENDSENDSTART串傳送:DATASEGMENTSTR1DB30H,31H,32H,33H,34HDB35H,36H,37H,38H,39HDB40H,41H,42H,43H,44H,45HCOUNTEQU$-STR1STR2DBCOUNTDUP(O)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,ES:DATASTART:MOVAX,DATAMOVDS,AX將DATA地址傳送到DS中MOVES,AX將DATA地址傳送到ES中LEASI,STR將STR1的偏移地址傳送到SI中LEADI,STR2#STR2的偏移地址傳送到DI中MOVCX,COUNT將數(shù)據(jù)塊長度傳送到CX中CLDREPMOVSB將STR1中的數(shù)據(jù)傳送到STR2中CODEENDSENDSTART問題:1數(shù)據(jù)傳送指令和串傳送指令兩種傳送各有何特點?答:MOV不能直接由存儲器到存儲器傳送,必須經(jīng)寄存器中轉(zhuǎn),MOVS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論