鱼C论坛

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

[汇编作业] 第8章——实验7

[复制链接]
发表于 2019-3-14 20:40:50 | 显示全部楼层 |阅读模式

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

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

x
  1. assume cs:codesg,ss:stack

  2. data segment
  3.         db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  4.         db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  5.         db '1993','1994','1995'
  6.         ;以上表示21年的21个字符串
  7.        
  8.         dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  9.         dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  10.         ;以上是表示21年公司总收入的21个dword型数据
  11.        
  12.         dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  13.         dw 11542,14430,15257,17800
  14.         ;21年公司雇员人数
  15. data ends

  16. table segment
  17.         db 21 dup ('year summ ne ?? ')
  18. table ends

  19. stack segment
  20.         db 'I LOVE FISHC.COM'
  21. codesg segment
  22. ks:        mov ax,data
  23.         mov ds,ax
  24.        
  25.         mov ax,table
  26.         mov es,ax
  27.        
  28.         mov ax,stack
  29.         mov ss,ax
  30.        
  31.         mov sp,10h
  32.         mov bx,0
  33.         mov si,0
  34.         mov di,0
  35.        
  36.         mov cx,21
  37. s:        mov ax,[bx]
  38.         mov es:[si],ax
  39.         mov ax,[bx+2]
  40.         mov es:[si+2],ax
  41.         ;年份
  42.        
  43.         mov ax,[bx+84]
  44.         mov es:[si+5],ax
  45.         mov dx,[bx+84+2]
  46.         mov es:[si+5+2],dx
  47.         ;总收入
  48.        
  49.         push cx
  50.        
  51.         mov cx,[di+168]               
  52.         mov es:[si+0ah],cx
  53.         ;雇员人数
  54.         div cx
  55.         mov es:[si+0dh],ax       
  56.        
  57.         pop cx
  58.         add bx,4
  59.         add di,2
  60.         add si,10h
  61.         loop s
  62.                
  63.         mov ax,4c00h
  64.         int 21h
  65. codesg ends
  66. end ks
复制代码


搞了一下午
还望大佬们看看有没有要改的地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-14 21:35:24 | 显示全部楼层
      这个肯定不对吧,楼主能编译过去?
  1. stack segment
  2.         db 'I LOVE FISHC.COM'
  3. codesg segment
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-14 21:50:35 | 显示全部楼层
jackz007 发表于 2019-3-14 21:35
这个肯定不对吧,楼主能编译过去?

粗心的我该怎么办
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-14 21:53:25 | 显示全部楼层
jackz007 发表于 2019-3-14 21:35
这个肯定不对吧,楼主能编译过去?

可以编译 不过提示是open segment
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-14 21:53:56 | 显示全部楼层
本帖最后由 jackz007 于 2019-3-14 21:56 编辑
WXYZLIBO 发表于 2019-3-14 21:50
粗心的我该怎么办


    楼主的代码基本正确,我只是稍微做了点精简,主要针对的是堆栈段的初始化。经测试,程序编译、运行完全正常。
  1. assume cs:codesg,ss:stack

  2. data segment
  3.         db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  4.         db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
  5.         db '1993','1994','1995'
  6.         ;以上表示21年的21个字符串
  7.         
  8.         dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  9.         dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  10.         ;以上是表示21年公司总收入的21个dword型数据
  11.         
  12.         dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  13.         dw 11542,14430,15257,17800
  14.         ;21年公司雇员人数
  15. data ends

  16. table segment
  17.         db 21 dup ('year summ ne ?? ')
  18. table ends

  19. stack segment stack
  20.       db 'I LOVE FISHC.COM'
  21. stack ends

  22. codesg segment
  23. ks:     mov ax,data
  24.         mov ds,ax
  25.         
  26.         mov ax,table
  27.         mov es,ax
  28.         
  29.         mov bx,0
  30.         mov si,0
  31.         mov di,0
  32.         
  33.         mov cx,21
  34. s:      mov ax,[bx]
  35.         mov es:[si],ax
  36.         mov ax,[bx+2]
  37.         mov es:[si+2],ax
  38.         ;年份
  39.         
  40.         mov ax,[bx+84]
  41.         mov es:[si+5] , ax
  42.         mov dx,[bx+84+2]
  43.         mov es:[si+5+2] , dx
  44.         ;总收入
  45.         
  46.         push cx
  47.         mov cx,[di+168]               
  48.         mov es:[si+0ah],cx
  49.         ;雇员人数
  50.         div cx
  51.         mov es:[si+0dh],ax        
  52.         
  53.         pop cx
  54.         add bx,4
  55.         add di,2
  56.         add si,10h
  57.         loop s
  58.                
  59.         mov ax,4c00h
  60.         int 21h
  61. codesg ends
  62. end ks
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-3-14 22:00:48 | 显示全部楼层
jackz007 发表于 2019-3-14 21:53
楼主的代码基本正确,我只是稍微做了点精简,主要针对的是堆栈段的初始化。经测试,程序编译、运行 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 18:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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