南通大學電腦科學與技術學院上機實驗報告
一、目的及要求
通過鍵盤輸入乙個數字,求1加到該數的和,並將結果顯示在螢幕上。
1、資料段定義:
data segment
n db 4
db ?
db 4 dup(?)
sum dw ?
msg1 db 'input a number:$'
msg2 db 'sum is $'
data ends
2、利用10號dos功能呼叫,接受輸入數字的ascii碼3、將輸入數字的ascii碼轉換成十進位制數4、利用迴圈結構求和
5、將所求和,轉換成ascii碼字串,並輸出6、提示資訊字串用9號dos功能呼叫完成,可寫成子程式,以供呼叫;
累加和,可用2號dos功能呼叫,依次顯示每一位字元。
二、環境(軟、硬體平台)
計算機(xp系統)、dos系統、masm6emu8086
三、內容及步驟(包括程式流程及說明)
data segment資料定義
n db 4
db ?
db 4 dup(?)
sum dw ?
msg1 db 'input a number:$'
msg2 db 'sum is $'
data ends
code segment
assume cs:code,ds:datamain proc far
start:mov ax,data
mov ds,ax
lea dx,msg1
call dispmess顯示input a numberlea dx,n
mov ah,0ah輸入數字
int 21h
call newline另起一行
lea si,n資料儲存位置
mov cl,[si+1
add si,2指標+2,指向數字第一位
xor ax,ax清零
;迴圈乘十,將輸入字元變為數字
again:add ax,axax*10。。。2mov bx,ax
add ax,ax4
add ax,ax8
add ax,bx10
mov bx,0
mov bl,[si]
sub bl,30h由ascii碼變為數字add ax,bx
inc si
loop again
mov cx,ax
mov ax,0
;計算1到n的和
a: add ax,cx
loop a
mov sum,ax
lea dx,msg2
push ax
call dispmess顯示sum ispop ax
push bx
call dispal
call newline
pop bx
mov ah,4ch退出
int 21h
main endp
dispmess proc near9號功能呼叫mov ah,9
int 21h
retdispmess endp
;除以10,取餘,提出每一位數字變為ascii碼輸出dispal proc near
mov cx,5
mov bx,10
disp1: cwd字擴充套件
div bxax除以10
xchg dx,ax交換:
add al,'0變為ascii碼
push ax
xchg dx,ax
mov dx,0
loop disp1
mov cx,5
disp2: pop dx
call echoch顯示
loop disp2
retdispal endp
echoch proc near2號功能呼叫mov ah,2
int 21h
retechoch endp
newline proc near回車換行push ax
push dx
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
retnewline endp
code ends
四、執行結果
因為電腦是win764位,無法使用dos,所以使用 emu8086除錯
五、問題及心得
微機原理實驗報告
一 實驗綜述 實驗目的 1 熟悉debug環境,在debug中輸入程式。2 掌握基本指令的用法。3 分析程式執行結果。4 會按要求編寫基本程式,完成基本功能。二 實驗過程 實驗步驟 資料記錄 實驗3.57 若ax 1001h,dx 20ffh,當執行add ax,dx指令以後,請列出和數及標誌暫存器...
微機原理實驗報告
實驗報告 課程名稱 實驗名稱 班級姓名學號 實驗組別同實驗者 實驗日期實驗地點 評定成績評閱教師 實驗報告要目 1 實驗目的要求 2 實驗儀器 裝置 3 實驗線路 原理框圖 4 實驗方法步驟 5 實驗的原始資料和分析 6 實驗討論 1 從螢幕輸入20個資料,有效資料從00 99 十進位制 2 按序進...
微機原理綜合實驗報告
濱江學院 實驗報告 學生姓名 學號專業資訊工程 班級2016級 二 一八年十二月三十日 微機原理綜合實驗 實驗一利用debug除錯程式除錯程式段 1 實驗目的 1 熟悉debug有關命令的使用方法。2 利用debug掌握有關指令的功能。3 利用debug執行簡單的程式段。2 實驗內容 1 進入和退出...