鱼C论坛

 找回密码
 立即注册
查看: 2479|回复: 7

求救!!汇编 实验7,只需您帮忙运行下

[复制链接]
发表于 2012-2-12 18:29:48 | 显示全部楼层 |阅读模式

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

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

x
assume cs:codesg,ds:data,es:table
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'
  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  dd 345980,590821,803530,1183000,1843000,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 sunm 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 di,0
  mov cx,21
  
    s:  mov al,[bx]
     mov es:[di],al
  mov al,[bx+1]
  mov es:[di+1],al
  mov al,[bx+2]
  mov es:[di+2],al
  mov al,[bx+3]
  mov es:[di+3],al
  
  mov ax,54h[bx]
  mov es:5h[di],ax
  mov bx,56h[bx]
  mov es:7h[di],bx
  
  mov ax,0a8h[si]
  mov es:0ah[di],ax
  
  mov ax,54h[bx]
  mov dx,56h[bx]
  div word ptr es:0ah[si]
  mov es:0dh[di],ax
  
  add bx,4
  add si,2
  add di,16
  loop s
  
  mov ax,4c00h
  int 21h
codesg ends
end start

本人已经崩溃了,破64位的机子,我已经不知道是代码错了还是机子的原因了。编译可以通过,但link时生不成exe文件。麻烦谁能帮我编译运行下试试,,我觉得代码应该没错啊。万分感谢!







想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-12 18:50:30 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-2-12 19:04 编辑

Divide overflow    link 后的提示我百度了下貌似是除法什么的溢出错误 你在研究下  我也是新手 没注释的情况下我还看不明白人家的思路所以帮不上!~


昨天才看到DIV那一章   估计是不是 DIV 那段出的问题? 我看上面那一堆mov 都没啥    就是下面的 dx ax 那部分在研究研究
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-12 19:01:40 | 显示全部楼层
根本不知道是什么,只是路过。刚来学习的。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-14 00:33:11 | 显示全部楼层
嗯,谢谢!我再看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-14 08:25:46 | 显示全部楼层
本帖最后由 Zero_One 于 2012-2-14 10:40 编辑

assume cs:codesg,ds:data,es:table
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'
   dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
   dd 345980,590821,803530,1183000,1843000,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 sunm 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 di,0
   mov cx,21
   
     s:  mov al,[bx]
      mov es:[di],al
   mov al,[bx+1]
   mov es:[di+1],al
   mov al,[bx+2]
   mov es:[di+2],al
   mov al,[bx+3]
   mov es:[di+3],al
   
   mov ax,54h[bx]
   mov es:5h[di],ax
   mov bx,56h[bx]                这里也错,不能使用BX当做暂时寄存器,改为AX   MOV AX,56H[BX]
   mov es:7h[di],bx                                                                                      MOV ES:7H[DI],AX
   
   mov ax,0a8h[si]
   mov es:0ah[di],ax
   
   mov ax,54h[bx]                  
   mov dx,56h[bx]                                    
   div word ptr es:0ah[si]       这里好像应该是DI   DIV WORD PTR ES:0AH[DI]
   mov es:0dh[di],ax
  
   add bx,4
   add si,2
   add di,16
   loop s
   
   mov ax,4c00h
   int 21h
codesg ends
end start
      刚才运行了下,一切正常,就上面两条错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-15 07:56:47 | 显示全部楼层
晕了,等待小白!!!~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-23 20:53:52 | 显示全部楼层
谢谢五楼大哥!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-23 21:05:26 | 显示全部楼层
assume cs:code,ds:data,es:table
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'
    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
    dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
    dw 11452,14430,15257,17800
data ends
table segment
    db 21 dup ('year summ ne ?? ')
table ends
code segment
start:  mov ax,data
        mov ds,ax
        mov ax,table
        mov es,ax
        mov bx,0
        mov si,0
             mov cx,21
s:            mov ax,[si]
            mov es:[bx],ax
       
            mov ax,[si+54h]
            mov es:[bx+5],ax
       
            mov ax,[bx+0a8h]
            mov es:[bx+0ah],ax
       
            add si,2
            mov ax,[si]
            mov es:[bx+si],ax
       
            mov ax,[si+54h]
            mov es:[bx+5+si],ax
       
            mov ax,es:[bx+5]
            mov dx,es:[bx+7]
            div word ptr es:[bx+0ah]
            mov es:[bx+0dh],ax
       
           add bx,16
           add si,2
           loop s
       
           mov ax,4c00h
           int 21h
code ends
end start  帮我看看我的可以不,我网吧不行。不过我觉得你那个好多错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 20:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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