鱼C论坛

 找回密码
 立即注册
查看: 1819|回复: 3

[技术交流] 课程设计 1(代码相对较少饿)

[复制链接]
发表于 2014-10-3 13:29:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 avatar10010 于 2014-10-3 23:33 编辑
;初学汇编,希望给点意见,将代码更加精{:1_1:}
assume cs:code

code segment  
year        db   '19751976197719781979198019811982198319841985',
                      '1986198719881989199019911992199319941995'
income   dd   16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514, 
                      345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
member  dw  3,7,9,13,28,38,130,220,476,778,1001,1442,2258,
                      2793,4037,5635,8226,11542,14430,15257,17800  

start:
        mov ax,0b800h+160*4/16   ;4代表行号
        mov es,ax

        mov bh,2        ;设置颜色(绿色)
        xor si,si
        xor di,di
        xor bp,bp
        mov cx,21                ;设置循环次数
line:
        ;Year
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        mov bl,year[di]
        mov es:[bp],bx
        mov bl,year[di+1]
        mov es:[bp+2],bx
        mov bl,year[di+2]
        mov es:[bp+4],bx
        mov bl,year[di+3]
        mov es:[bp+6],bx
        ;Income
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        add bp,12
        mov ax,word ptr income[di]
        mov dx,word ptr income[di+2]
        call dtoc
        ;Member
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        add bp,18
        mov ax,member[si]
        xor dx,dx
        call dtoc
        ;Average
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        add bp,14
        push cx
        mov ax,word ptr income[di]
        mov dx,word ptr income[di+2]
        mov cx,member[si]
        call divdw
        call dtoc
        add si,2
        add di,4
        add bp,116
        pop cx        
loop line        
        mov ax,4c00h
        int 21h

dtoc:
        push si
        push cx        
        xor si,si
s: 
        mov cx,10
        call divdw
        add cl,30h
        mov ch,bh
        push cx
        inc si
        mov cx,ax
        jcxz return1
        jmp s
return1:
        mov cx,si        
        mov si,bp
return2:
        pop es:[si]
        add si,2
        loop return2
        pop cx
        pop si
        ret

divdw:
        push bx
        push ax    ;保存低16位
        mov ax,dx  ;此时ax的值是高16位
        xor dx,dx
        div cx           ;H/N
        mov bx,ax  ;bx的值为(int)H/N,dx的值是(rem)H/N
        pop ax
        div cx           ;L/N
        mov cx,dx
        mov dx,bx
        pop bx
        ret

code ends
end start

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-3 15:13:05 | 显示全部楼层
0x1.代码请用代码格式发
0x2.新手可以看下置顶的帖子再发帖哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-3 23:32:52 | 显示全部楼层
小靚同学Leon 发表于 2014-10-3 15:13
0x1.代码请用代码格式发
0x2.新手可以看下置顶的帖子再发帖哦

谢谢,我已经改正了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-11-1 03:06:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 00:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表