鱼C论坛

 找回密码
 立即注册
查看: 3988|回复: 1

[汇编作业] 小甲鱼老师看看,实验七,栈实现,汇编我算入门了吗?

[复制链接]
发表于 2022-1-18 22:13:40 | 显示全部楼层 |阅读模式

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

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

x
  1. ;QQ3445301609 2022-01-18
  2. assume        cs:code,ds:data,es:table,ss:stack

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

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

  20. stack        segment
  21.         db        128 dup(0)
  22. stack        ends

  23. code        segment
  24. start:        mov ax,data
  25.                 mov ds,ax
  26.                 mov ax,table
  27.                 mov es,ax
  28.                
  29.                 mov bx,0
  30.                 mov dx,0
  31.                 mov bp,0
  32.                 mov si,0
  33.                 mov cx,21
  34. s:               
  35.                 ;将年份入栈
  36.                 push ds:[bp+0]
  37.                 push ds:[bp+2]
  38.                
  39.                 ;将收入入栈
  40.                 push ds:[bp+54H]
  41.                 push ds:[bp+54H+2]
  42.                
  43.                 ;将雇员数入栈
  44.                 push ds:[si+0A8H]
  45.                
  46.                 ;做除法前将bx入栈
  47.                 push bx
  48.                
  49.                 ;将被除数收入数据的低位存入ax中
  50.                 mov ax,ds:[bp+54H]
  51.                
  52.                 ;将被除数收入数据的高位存入bx中
  53.                 mov dx,ds:[bp+54H+2]
  54.                
  55.                 ;将除数存入bx中
  56.                 mov bx,ds:[si+0A8H]
  57.                
  58.                 ;开始计算
  59.                 div bx
  60.                
  61.                 ;bx出栈
  62.                 pop bx
  63.                
  64.                 ;将计算结果存入table中
  65.                 mov es:[bx+0DH],ax
  66.                
  67.                 ;依次出栈分别存入table中
  68.                 pop es:[bx+0AH]
  69.                 pop es:[bx+5+2]
  70.                 pop es:[bx+5]
  71.                 pop es:[bx+2]
  72.                 pop es:[bx+0]
  73.                
  74.                 add si,2        ;雇员人数偏移量
  75.                 add bp,4        ;年份和总收入偏移量
  76.                 add bx,16        ;table行偏移量
  77.                
  78.                 loop s
  79.                
  80.                 mov ax,4c00H
  81.                 int 21H

  82. code        ends
  83. end        start
复制代码



                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-17 20:55:09 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-7 05:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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