實(shí)驗(yàn)一 兩個多位十進(jìn)制數(shù)相加的實(shí)驗(yàn).doc_第1頁
實(shí)驗(yàn)一 兩個多位十進(jìn)制數(shù)相加的實(shí)驗(yàn).doc_第2頁
實(shí)驗(yàn)一 兩個多位十進(jìn)制數(shù)相加的實(shí)驗(yàn).doc_第3頁
實(shí)驗(yàn)一 兩個多位十進(jìn)制數(shù)相加的實(shí)驗(yàn).doc_第4頁
實(shí)驗(yàn)一 兩個多位十進(jìn)制數(shù)相加的實(shí)驗(yàn).doc_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

實(shí)驗(yàn)一 兩個多位十進(jìn)制數(shù)相加的實(shí)驗(yàn)1、 實(shí)驗(yàn)?zāi)康?1、學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法。 2、熟悉在PC機(jī)上建立、匯編、鏈接、調(diào)試和運(yùn)行匯編語言程序的過程。2、 實(shí)驗(yàn)內(nèi)容 將兩個多位十進(jìn)制數(shù)相加,要求被加數(shù)和加數(shù)均以ASCII碼形式各自順序存放在以DATA1、DATA2為首的5個內(nèi)存單元中(低位在前),結(jié)果送回DATA1處。3、 程序框圖 4、 程序清單DATA SEGMENT ;定義數(shù)據(jù)段DATA1 DB 33H,39H,31H,37H,34H ;被加數(shù)DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H ;加數(shù)DATA2END EQU $-1SUM DB 5 DUP(?) ;定義5個空字節(jié)DATA ENDSSTACK SEGMENT ;定義堆棧段STA DB 20 DUP(?) ;取從STA開始的20個字節(jié)為堆棧段TOP EQU LENGTH STA ;將堆棧段長度存放在TOP中STACK ENDS ;堆棧段定義結(jié)束CODE SEGMENT ;定義程序代碼段ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA ;表明程序代碼段與段地址之間的關(guān)系START: MOV AX,DATA MOV DS,AX ;將段地址送入段地址寄存器 MOV AX,STACK MOV SS,AX ;將當(dāng)前堆棧段首地址送入SS MOV SP,AX ;將堆棧段首地址送入堆棧指針寄存器 MOV SI,OFFSET DATA1END ;將DATA1的偏移地址送入SI MOV DI,OFFSET DATA2END ;將DATA2的偏移地址送入DI CALL ADDA ;調(diào)用子程序ADDA MOV AX,4C00H INT 21H ;中斷調(diào)用ADDA PROC NEAR ;子程序段 MOV DX,SI ;DX=0004H MOV BP,DI ;BP=0009H MOV BX,05H ;程序調(diào)用次數(shù)AD1: SUB BYTE PTRSI,30H ;將被加數(shù)的ASCII碼轉(zhuǎn)換成十六進(jìn)制數(shù) SUB BYTE PTRDI,30H ;將加數(shù)的ASCII碼轉(zhuǎn)換成十六進(jìn)制數(shù) DEC SI ;SI中的內(nèi)容自減1 DEC DI ;DI中的內(nèi)容自減1 DEC BX ;程序調(diào)用次數(shù)自減1 JNZ AD1 ;條件轉(zhuǎn)移 MOV SI,DX ;回到初始位置 MOV DI,BP MOV CX,05H ;循環(huán)次數(shù)控制 CLC ;清除CF位AD2: MOV AL,SI MOV BL,DI ADC AL,BL ;從低位開始進(jìn)行帶進(jìn)/借位的加法運(yùn)算 AAA ;轉(zhuǎn)換成非壓縮BCD碼,低位存于AL,高位存于AH MOV SI,AL ;將AL中的內(nèi)容存入SI所在地址 DEC SI ;偏移地址自減 DEC DI ;偏移地址自減 LOOP AD2 ;循環(huán)控制指令 MOV SI,DX MOV DI,BP MOV BX,05HAD3: ADD BYTE PTRSI,30H ;將16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼表示 ADD BYTE PTRDI,30H DEC SI ;偏移地址自減 DEC DI DEC BX JNZ AD3 RET ;返回指令 ADDA ENDP ;結(jié)束子程序 CODE ENDS ;結(jié)束程序代碼段END START 5、 實(shí)驗(yàn)結(jié)果(截屏-軟件實(shí)驗(yàn)或者拍照-硬件實(shí)驗(yàn))6、 實(shí)驗(yàn)結(jié)果分析(預(yù)期結(jié)果與實(shí)際結(jié)果的對照)1、 數(shù)據(jù)段分析用ASCII碼值的形式表示被加數(shù)和加數(shù)被加數(shù)=39174;加數(shù)=450822、 堆棧段分析用于存放計(jì)算過程中的過程量。3、 程序代碼段分析1) 從低位起,將被加數(shù)和加數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)被加數(shù)和加數(shù)轉(zhuǎn)換各位轉(zhuǎn)換成十六進(jìn)制數(shù)表示。2) 從低位起進(jìn)行各個位上的帶進(jìn)位的加法運(yùn)算得到的結(jié)果的各位上的十六進(jìn)制表示形式。3) 將結(jié)果的各個位上的數(shù)轉(zhuǎn)換成ASCII碼的形式得到最后的結(jié)果實(shí)驗(yàn)得到的最后的結(jié)果是39174+45082=84256。7、 實(shí)驗(yàn)心得體會 通過本次實(shí)驗(yàn),我對匯編有了更物理化的認(rèn)識,也明白了匯編中各個寄存器的作用及寄存器間是怎樣聯(lián)系的,也初步明白了什么是段地址,什么是堆棧,以及匯編的基本結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的基本運(yùn)用。但是,我的了解只是初步的,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論