. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->更灵活的定位内存地址的方法
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  我做的试验7  [待解决] 回复[ 1次 ]   点击[ 326次 ]  
strawer
[帖 主]   [ 发表时间:2010-02-07 16:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-02-03 13:33
assume cs:codesg

data segment
  DB '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982' 
  DB '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990' 
  DB '1991', '1992', '1993', '1994', '1995' 
     
  DD 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514 
  DD 345980, 590827, 803530, 118300, 184300, 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, 15257, 17800
data ends

table segment
  db 21 dup('year summ ne ?? ')
table ends

codesg segment

  start:
        mov ax,data
        mov ds,ax

        mov ax,table
        mov es,ax

        mov bx,0
        mov si,0
        mov cx,21
        mov di,0
        s:mov ax,0[si]
          mov es:[di],ax
          mov ax,0[si+2]
          mov es:[di+2],ax

          mov ax,84[si]
          mov es:[di+5],ax
          mov ax,84[si+2]
          mov es:[di+7],ax

          mov ax,168[bx]
          mov es:[di+10],ax

          mov ax,84[si]
          mov ax,84[si+2]
          div word ptr es:[di+10]
          mov es:[di+13],ax

          add si,4
          add di,10h
          add bx,2
          loop s

  mov ax,4c00h
  int 21h

codesg ends
end start


debug时,最后查看es:0 14f数据,第一次调试和第二次调试结果不一样,然后再次调试就和第二次相同了。这是为什么呢?
strawer
[第1楼]   [ 回复时间:2010-02-07 16:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-02-03 13:33
不好意思,发错地方了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved