. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  别样风格的实验7,还有没有新风格的?  [待解决] 回复[ 2次 ]   点击[ 531次 ]  
asm0101
[帖 主]   [ 发表时间:2015-04-06 00:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-02-17 23:21
assume cs:codesg 
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' 
     ;以上21个字符串,表示公司经历的21个年份 
     dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 
     dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 
     ;以上21个dword型数据,表示公司21年里各年总收入 
     dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 
     dw 11542,14430,15257,17800 
     ;以上21个dword型数据,表示公司21年里各年雇员人数 
data ends 
table segment 
     db 21 dup ('year summ ne ?? ') 
table ends 
codesg segment 

start:mov ax,data 
      mov ss,ax 
      mov sp,0 
      mov ax,table 
      mov es,ax
      mov bp,84                ;收入首地址21*4 
      mov si,168               ;雇员首地址(21*4)*2
      mov di,0
      mov cx,21 

   s: pop es:[di].0 
      pop es:[di].2            ;年份数据入table
      mov bx,sp

      mov sp,bp
      pop es:[di].5 
      pop es:[di].7            ;收入数据入table
      mov bp,sp

      mov sp,si
      pop es:[di].10           ;雇员数据入table
      mov si,sp

      mov ax,es:[di].5
      mov dx,es:[di].7
      div word ptr es:[di].10
      mov es:[di].13,ax        ;人均收入数据入table

      mov sp,bx
      add di,10h
      loop s 

      mov ax,4c00h 
      int 21h 
codesg ends 
end start 

此前,都是push/pop两个操作配对进行。
实验7的数据结构,正好用来试试不配对的操作会如何。
也顺便检验,栈顶sp值的反复设置会有什么问题。

欢迎提供别样风格的实验7程序!
feifeiluan2
[第1楼]   [ 回复时间:2015-04-21 22:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-07-22 21:10
有意思,用debug单步操作,还跟踪不对,嘿嘿
asm0101
[第2楼]   [ 回复时间:2015-05-09 11:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-02-17 23:21
谢谢关注!
程序没有问题,调试结果也是对的。
跟踪不对,应该是debug自身有问题,
或者操作时使用的命令有问题!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved