鱼C论坛

 找回密码
 立即注册
查看: 4057|回复: 5

[技术交流] 菜鸟分享课程设计1代码,乱!

[复制链接]
发表于 2011-5-19 20:22:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 weixianlang 于 2011-5-20 00:18 编辑

笨鸟先飞,高手可以飞过,上代码!
assume cs:fuck,ds:data,es:table

data segment 
  db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  db '1993','1994','1995'  
  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  dw 11542,14430,45257,17800

data ends

stack segment
  db 16 dup (0)
stack ends

fuck segment     
start:    
    mov ax,data
    mov ds,ax
    mov ax,0b800h
    mov es,ax
    mov ax,stack
    mov ss,ax
    mov bx,0
    mov bp,0
    mov si,0
    mov dx,0
    mov di,0           ;初始化各个值
    mov cx,21          ;总循环21次
   
qb: push cx             ;保存总体循环次数
    mov ah,7           ;设置属性
    mov al,[bx]        
    mov es:[bp+6],ax
    mov al,[bx+1]
    mov es:[bp+8],ax
    mov al,[bx+2]
    mov es:[bp+10],ax
    mov al,[bx+3]
    mov es:[bp+12],ax         ;年份进入显示区
   
    mov ax,54h[bx]
    mov dx,56h[bx]         ;;因为是四字节,所以分AX和BX存储,刚好合除法位置
    push si
    mov si,1ch             ;设置收入列偏移
    call toc
    pop si
    mov ax,0a8h[di]
    push si
    mov si,2eh
    call toc
    pop si
    ;下面开始求平均收入
    mov ax,54h[bx]               ;因为是四字节,所以分AX和BX存储,刚好合除法位置
    mov dx,56h[bx]               
    mov cx,word ptr [di+0a8h]    ;除数
    call divdw
    push si
    mov si,3ch                 ;设置列偏移
    call toc
    pop si 
    add bp,0a0h                ;这里为换行做准备,下面都是
    add bx,4
    add di,2
    pop cx
    loop qb
    mov ax,4c00h
    int 21h

toc:                          ;子程序
push bx          
push di
mov di,0            ;初始化di,我用di作为存储除法次数,后面出栈要用到
mov bx,10d          ;设置除数为10d
t1:push ax          ;从这里开始
mov ax,dx
mov dx,0
div bx
mov cx,ax
pop ax
div bx
add dx,30h
push dx
mov dx,cx
mov cx,ax
inc di
jcxz ok
jmp short t1         ;到这里,是解决除法溢出那个子程序
ok:mov cx,di          ;把次数传送给cx,下面出栈要用
t2:pop dx            ;开始出栈罗,
mov dh,7
mov es:[bp+si],dx    ;开始送如显示缓冲区
add si,2            ;列偏移往前推
loop t2
pop di
pop bx
mov dx,0
ret               ;执行完毕
    
    
divdw:push bx     ;隔了几天做出来,都忘了这里的存在了,解决除法溢出的子程序
      push cx     ;用来计算平均值的
      push ax
      mov ax,dx
      mov dx,0
      div cx
      mov bx,ax
      pop ax
      div cx
      mov cx,dx
      mov dx,bx
      pop cx
      pop bx      
      ret


    
fuck ends
end start

                               
登录/注册后可看大图
   

评分

参与人数 2荣誉 +1 鱼币 +5 收起 理由
loop + 3 再接再厉,鱼C有你更精彩~
china0008 + 1 + 2 不错,阶段性胜利。继续努力。加油!~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 20:37:27 | 显示全部楼层
祝贺你出师了。我还要努力呀。,加油哦:D
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-19 20:48:31 | 显示全部楼层
回复 weixianlang 的帖子

这只是一个小小的阶段而已啦,只不过弄了几天,终于弄好了,有点兴奋哈哈,加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 20:54:29 | 显示全部楼层
额,是做的题目吗?问题是什么,我也做做看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-19 20:55:21 | 显示全部楼层
回复 王子 的帖子

书里的课程设计1.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-23 01:50:40 | 显示全部楼层
哥们儿,你学得这么快啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-5 13:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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