汇编语言——《分支与循环程序设计》实验报告
生活随笔
收集整理的這篇文章主要介紹了
汇编语言——《分支与循环程序设计》实验报告
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實驗目的
1、掌握程序設計中的3種基本結構(順序結構、選擇程序、循環程序)。
2、熟練使用匯編語言的指令:數據傳送類指令、數據運算類指令、邏輯判斷類指令與轉移指令、循環指令等。
3、初步了解系統功能調用的使用方法,嘗試使用01H號功能調用進行字符輸入的方法及使用02H號功能調用進行字符輸出(顯示)的方法。
實驗內容
設計思想
1、先將1-10循環求和,為了將結果顯示在屏幕上,需要講計算后保存在ax中的結果以十進制形式輸出,可以將結果的兩位數分別存于低位和高位中,即除以10取整和余?? AL是商,AH是余數,后加上30h。
2、使用SI寄存器,用于在存儲器中尋址。利用循環輸入10個數字,將10個數比較,大的放在AL,小的放在BL。利用01H號功能,輸出。
3、結合第1題和第2題。
4、修改輸入。
程序代碼
1、
code segmentmain proc farassume cs:code start:push dssub ax,axpush axmov bx,0ahmov cx, 0ah sum1:add ax,bxdec bxloop sum1 printit:mov bl,10div bladd al,30hmov ch,ahmov dl,almov ah,2int 21hadd ch,30hmov dl,chmov ah,2int 21hretmain endpcode ends end2、
data segment ;數據段定義開始buf db 10 dup(?) ;數據定義及其存儲空間max db ?min db ?Str1 db 0DH,0AH,'Please input: ','$' ;定義Str1的內容Str2 db 0DH,0AH,'MAX:','$' ;定義Str2的內容Str3 db 0DH,0AH,'MIN:','$' ;定義Str3的內容 data ends ;數據段定義結束 Stack segment stack ;堆棧段定義開始db 10 dup(?) stack ends ;堆棧段定義結束code segment ;代碼段定義開始 main proc far assume cs:code,ds:data,ss:stack start: push ds sub ax,axpush axmov ax,datamov ds,axmov ax,stackmov ss,axmov cx,10mov si,0 ;寄存器,用于尋址mov bx,0 lop1: lea dx,Str1 mov ah,09int 21hmov ah,01h ; 輸入int 21hmov buf[si],alinc siloop lop1 ;返回循環1mov cx,9mov si,0mov al,buf[si]mov bl,al lop2:inc si mov dl,buf[si]cmp dl,aljl compare1mov al,dl compare1:cmp bl,dl ;比較,小的數放在bljl compare2mov bl,dl compare2:loop lop2 mov max,al mov min,bl lea dx,Str2mov ah,09int 21hmov dl,maxmov ah,02h int 21h ;輸出最大數lea dx,Str3mov ah,09int 21hmov dl,minmov ah,02h int 21h ;輸出最小數ret main endpcode ends end start3、
data segment ;數據段定義開始buf db 10 dup(?) ;數據定義及其存儲空間max db ?min db ?Str1 db 0DH,0AH,'Please input: ','$' ;定義Str1的內容Str2 db 0DH,0AH,'MAX:','$' ;定義Str2的內容Str3 db 0DH,0AH,'MIN:','$' ;定義Str3的內容Str4 db 0DH,0AH,'SUM:','$' ;定義Str4的內容 data ends ;數據段定義結束 Stack segment stack ;堆棧段定義開始db 10 dup(?) stack ends ;堆棧段定義結束code segment ;代碼段定義開始 main proc far assume cs:code,ds:data,ss:stack start: push ds sub ax,axpush axmov ax,datamov ds,axmov ax,stackmov ss,axmov cx,10mov si,0 ;寄存器,用于尋址mov bx,0 lop1: lea dx,Str1 mov ah,09int 21hmov ah,01h ; 輸入int 21hmov buf[si],alinc siloop lop1 ;返回循環1mov cx,9mov si,0mov al,buf[si]mov bl,al lop2:inc si mov dl,buf[si]cmp dl,aljl compare1mov al,dl compare1:cmp bl,dl ;比較,小的數放在bljl compare2mov bl,dl compare2:loop lop2 mov max,al mov min,bl lea dx,Str2mov ah,09int 21hmov dl,maxmov ah,02h int 21h ;輸出最大數lea dx,Str3mov ah,09int 21hmov dl,minmov ah,02h int 21h ;輸出最小數lea dx,Str4mov ah,09int 21hsub ax,axmov bx,0mov cx,9mov si,0 sum1:inc si mov bl,buf[si]sub bl,30hadd ax,blloop sum1 printit:mov bl,10div bladd al,30hmov ch,ahmov dl,almov ah,2int 21hadd ch,30hmov dl,chmov ah,2int 21hretmain endpcode ends end start4、
data segment ;數據段定義開始buf db 10 dup(?) ;數據定義及其存儲空間max db ?min db ?Str1 db 0DH,0AH,'Please input: ','$' ;定義Str1的內容Str2 db 0DH,0AH,'MAX:','$' ;定義Str2的內容Str3 db 0DH,0AH,'MIN:','$' ;定義Str3的內容 data ends ;數據段定義結束 Stack segment stack ;堆棧段定義開始db 10 dup(?) stack ends ;堆棧段定義結束code segment ;代碼段定義開始 main proc far assume cs:code,ds:data,ss:stack start: push ds sub ax,axpush axmov ax,datamov ds,axmov ax,stackmov ss,axmov cx,10mov si,0 ;寄存器,用于尋址mov bx,0 lop1: lea dx,Str1 mov ah,09hint 21hmov ah,01h ; 輸入1int 21hsub al,30hmov ah,0mov bl,10mul blmov dl,almov ah,01h ; 輸入2int 21hsub al,30hmov ah,0add al,dlmov buf[si],alinc siloop lop1 ;返回循環1mov cx,9mov si,0mov al,buf[si]mov bl,al lop2:inc si mov dl,buf[si]cmp dl,aljl compare1mov al,dl compare1:cmp bl,dl ;比較,小的數放在bljl compare2mov bl,dl compare2:loop lop2 mov max,al mov min,bl printmax:lea dx,Str2mov ah,09int 21hmov ax,0mov al,maxmov bl,10div bladd al,30hmov ch,ahmov dl,almov ah,2int 21hadd ch,30hmov dl,chmov ah,2int 21h printmin:lea dx,Str3mov ah,09int 21hmov ax,0mov al,minmov bl,10div bladd al,30hmov ch,ahmov dl,almov ah,2int 21hadd ch,30hmov dl,chmov ah,2int 21hretmain endpcode ends end start結果分析
1、
2、
3、
4、
參考文章
https://blog.csdn.net/csj41352/article/details/79981434
https://zhidao.baidu.com/question/562479802788685844.html
https://wenku.baidu.com/view/af740cdc19e8b8f67d1cb92f.html
總結
以上是生活随笔為你收集整理的汇编语言——《分支与循环程序设计》实验报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言——《分支与循环程序设计》实验任
- 下一篇: 汇编语言——输入两位数比较大小