鱼C论坛

 找回密码
 立即注册
查看: 2453|回复: 0

[争议讨论] 实验七 寻址方式在结构化数据访问中的应用 ;栈的使用

[复制链接]
发表于 2013-6-17 11:02:55 | 显示全部楼层 |阅读模式

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

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

x
  1. assume cs:codesg,ds:data,ss:stack,es:table

  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.         ;年份
  7.         ;21*4-1=84-1=83
  8.         ;截止到83
  9.         ;84开始就是总收入的双字数据  55H 16 10H
  10.        
  11.         dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  12.         dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  13.         ;总收入
  14.         ;
  15.         ;截止到167
  16.         ;168开始就是雇员人数
  17.        
  18.         dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  19.         dw 11542,14430,15257,17800
  20.         ;雇员人数
  21.         ;从168-209
  22.         ;17800为地址208
  23. data ends

  24. table segment
  25.         db 21 dup ('year summ ne ?? ')
  26. table ends
  27.        
  28.        
  29. stack segment
  30.         db 32 dup (0)
  31. stack ends


  32. codesg segment
  33. start:
  34.         mov ax, data
  35.         mov ds, ax

  36.         mov ax, table
  37.         mov es, ax
  38.        
  39.         mov ax, stack
  40.         mov ss, ax

  41.         mov si, 0        ;寄存器初始化
  42.         mov di, 0
  43.         mov bx, 0
  44.         mov dx, 0
  45.         mov ax, 0
  46.         mov cx, 0
  47.         mov sp, 32
  48.        
  49.         ; tb0 --- #0-3 YEAR
  50.         mov cx, 21
  51. tb0:
  52.         push cx
  53.         push si
  54.         push di
  55.         mov ax, [si]
  56.         mov es:[bx+di], ax
  57.         add di, 2
  58.         add si, 2
  59.         mov ax, [si]
  60.         mov es:[bx+di], ax
  61.         pop di
  62.         pop si
  63.         add si, 4
  64.         pop cx
  65.         add bx, 10H
  66.         loop tb0
  67.         ;
  68.        
  69.         ;tb1 --- #5-8 EARN
  70.         mov cx, 21
  71.         mov si, 84
  72.         mov di, 5
  73.         mov bx, 0
  74. tb1:
  75.         push cx
  76.         push si
  77.         push di
  78.         mov ax, [si]
  79.         mov es:[bx+di], ax
  80.         mov ax, [si+2]
  81.         mov es:[bx+di+2], ax
  82.         pop di
  83.         pop si
  84.         add si, 4
  85.         pop cx
  86.         add bx, 10H
  87.         loop tb1
  88.         ;
  89.        
  90.         ;tb2 --- #A-B #PEOPLE
  91.         mov cx, 21
  92.         mov si, 168
  93.         mov di, 10
  94.         mov bx, 0
  95. tb2:
  96.         push cx
  97.         push si
  98.         push di
  99.         mov ax, [si]
  100.         mov es:[bx+di], ax
  101.         pop di
  102.         pop si
  103.         add si, 2
  104.         pop cx
  105.         add bx, 10H
  106.         loop tb2
  107.         ;
  108.        
  109.         ;tb3 --- #D-E EARNPERPEOPLE
  110.         mov cx, 21
  111.         mov si, 84
  112.         mov di, 13
  113.         mov bx, 0
  114. tb3:
  115.         push cx
  116.         push si
  117.         push di
  118.         mov ax, [si]
  119.         mov dx, [si+2]
  120.         mov di, 10
  121.         div word ptr es:[bx+di]
  122.         pop di
  123.         push di
  124.         mov es:[bx+di], ax
  125.         pop di
  126.         pop si
  127.         add si, 4
  128.         pop cx
  129.         add bx, 10H
  130.         loop tb3
  131.         ;

  132.        
  133.         mov ax, 4c00h
  134.         int 21h
  135.        
  136. codesg ends
  137. end start       
复制代码
在看视频之前摸索出的代码- -使用栈功能避免使用了常量段——只是提出一种思路{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 01:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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