王爽 汇编语言第三版 课程设计 1
生活随笔
收集整理的這篇文章主要介紹了
王爽 汇编语言第三版 课程设计 1
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
From:https://www.cnblogs.com/Since-natural-ran/p/6938133.html
?
匯編語言-課程設(shè)計1:?https://www.cnblogs.com/tsembrace/p/3267158.html
王爽課程設(shè)計1(匯編語言編寫): https://www.imooc.com/article/18785
王爽《匯編語言》課程設(shè)計1: https://blog.csdn.net/zhangyuzuishuai/article/details/52274104
?
?
預(yù)備知識:
清屏:若要顯示這些數(shù)據(jù),不希望被之前的信息所影響,所以先把屏幕清理;
assume cs:codestack segmentdw 16 dup(0)code segmentstart:mov ax,stackmov ss,axmov sp,16mov ax,0b800hmov es,axpush bp ;保留現(xiàn)場,雖然沒什么用,但是要養(yǎng)成習(xí)慣push cxmov bp,0 ;行mov cx,22 ;一共有22行需要清屏s1:mov si,0push cxmov cx,80 ;每一行有80個字符s2:mov byte ptr es:[bp+si],0 ;空字符mov byte ptr es:[bp+si+1],7 ;屬性add si,2loop s2add bp,160pop cxloop s1pop cxpop bpmov ax,4c00h ;不要忘了正常退出int 21h code ends end start寫成函數(shù)的形式:
assume cs:codestack segmentdw 16 dup(0)code segment start:main:mov ax,stackmov ss,axmov sp,16mov ax,0b800hmov es,axcall sub1mov ax,4c00h ;不要忘了正常退出int 21hsub1:push bp ;保留現(xiàn)場,雖然沒什么用,但是要養(yǎng)成習(xí)慣push cxmov bp,0 ;行mov cx,22 ;一共有22行需要清屏s1:mov si,0push cxmov cx,80 ;每一行有80個字符s2:mov byte ptr es:[bp+si],0 ;空字符mov byte ptr es:[bp+si+1],7 ;屬性add si,2loop s2add bp,160pop cxloop s1pop cxpop bpretcode ends end start效果相同
對于字符串的顯示程序:
assume cs:codestack segmentdw 16 dup (0) stack endsdata segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','1994','1995' data endscode segment start:main:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axmov ax,0b800h ;顯示段mov es,axmov bx,0mov bp,160 ;行add bp,160mov cx,21s1:mov si,0 ;列push cxmov cx,4s2:call show_yearadd si,2inc bxloop s2add bp,160pop cxloop s1mov ax,4c00hint 21hshow_year:push axmov al,[bx]mov es:[bp+si],almov byte ptr es:[bp+si+1],02h ;注意這里要用byte ptrpop axret code ends end start
?
要求:把試驗七的數(shù)據(jù)顯示在屏幕上
assume cs:code stack segmentdw 0,0,0,0,0,0,0,0 stack ends ;******************************數(shù)據(jù)段****************************** data segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','1994','1995'; 21個年份的字符串dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;21年公司收入數(shù)據(jù)dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635dw 8226,11542,14430,15257,17800;21年公司員工人數(shù)dd 21 dup (0) ;21個人均年收入dw 10 data endscode segment start:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axmov ax,0b800hmov es,ax;計算人均收入mov si,84mov di,168mov bx,210mov cx,21jisuan:call div_ddadd si,4add di,2add bx,4loop jisuan ;清屏call clear_scr ;顯示年份數(shù)據(jù)mov bx,0mov bp,160mov cx,21year1:mov si,0push cxmov cx,4year2:call show_yearadd si,2inc bxloop year2add bp,160pop cxloop year1;顯示收入數(shù)據(jù)mov bx,84mov bp,180mov cx,21shouru:mov di,0call show_shouruadd bx,4add bp,160loop shouru ;顯示員工數(shù)據(jù)mov bx,168mov bp,200mov cx,21yuangong:mov di,0call word_showadd bx,2add bp,160loop yuangong ;顯示人均收入mov bx,210mov bp,220mov cx,21renjun:mov di,0call show_shouruadd bx,4add bp,160loop renjunmov ax,4c00hint 21h;dd除法運算 div_dd:push axpush dxmov dx,0mov ax,[si+2]div word ptr [di]mov [bx+2],axmov ax,[si]div word ptr [di]mov [bx],axpop dxpop axret;清屏 clear_scr:push bppush cxmov bp,0mov cx,22clear1:mov si,0push cxmov cx,80clear2:mov byte ptr es:[bp+si],0168mov byte ptr es:[bp+si+1],0add si,2loop clear2add bp,160pop cxloop clear1pop cxpop bpret;顯示一個字節(jié)的字符year show_year:push axmov al,[bx]mov es:[bp+si],almov byte ptr es:[bp+si+1],02hpop axret;顯示dword型數(shù)據(jù)為字符串,存入顯示區(qū)域 show_shouru:push axpush bxpush cxpush dxpush simov dx,ds:[bx+2]mov ax,ds:[bx]mov si,0s1:push axmov ax,dxmov dx,0div word ptr ds:[294]mov bx,axpop axdiv word ptr ds:[294]push dxinc simov dx,bxmov cx,axjcxz ok1jmp short s1ok1:mov cx,dxjcxz ok2jmp short s1ok2:mov cx,sis2:pop axadd al,30hmov es:[bp+di],almov byte ptr es:[bp+di+1],02hadd di,2loop s2pop sipop dxpop cxpop bxpop axret;轉(zhuǎn)換word型數(shù)據(jù)為字符串 word_show:push axpush bxpush cxpush dxpush simov ax,ds:[bx]mov si,0s3:mov bl,almov al,ahmov ah,0div byte ptr ds:[294]mov bh,almov al,bldiv byte ptr ds:[294]mov bl,ahmov ah,bhpush bxmov cx,axinc sijcxz ok3jmp short s3ok3:mov cx,sis4:pop axadd al,30hmov es:[bp+di],almov byte ptr es:[bp+di+1],02hadd di,2loop s4pop sipop dxpop cxpop bxpop axretcode ends end start運行結(jié)果截圖:
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的王爽 汇编语言第三版 课程设计 1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java8 Stream详解~ 提取/组
- 下一篇: 汇编中各寄存器的作用(16位CPU14个