. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验7编译老是没通过,大家帮我看看哪里错了?  [待解决] 回复[ 6次 ]   点击[ 611次 ]  
lu675804358
[帖 主]   [ 发表时间:2012-02-18 18:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2012-02-10 02:48
assumme 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'
   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 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 bx,0
       mov si,0
       mov ax,table
       mov es,ax
       mov di,0
       mov cx,21
    s: mov ax,[bx]
       mov es:[si],ax
       mov ax,[bx+2]
       mov es:[si+2],ax

       mov ax,[bx+84]
       mov es:[si+5],ax
       mov ax,[bx+86]
       mov es:[si+7],ax

       mov ax,[di+168]
       mov es:[si+10],ax
       mov ax,[si+5]
       mov dx,[si+7]
       div word ptr [si+10]
       mov es:[si+13],ax

       add bx,4
       add di,2
       add si,16
       loop s

       mov ax,4c00H
       int 21H
codesg ends
end start
tomato
[第1楼]   [ 回复时间:2012-02-18 22:45 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
弹出什么提示信息?错误出现在第几行?楼主把编译错误信息发上来看看。
lu675804358
[第2楼]   [ 回复时间:2012-02-18 23:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2012-02-10 02:48
C:\USERS\LUYANG>D:\masm5.0\masm.exe
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987.  All rights reserved.

Source filename [.ASM]: D:\masm5.0\wan.asm
Object filename [wan.OBJ]: D:\masm5.0\wan.obj;
D:\masm5.0\wan.asm(1): error A2105: Expected: instruction or directive
D:\masm5.0\wan.asm(15): error A2062: Missing or unreachable CS
D:\masm5.0\wan.asm(23): error A2062: Missing or unreachable CS

  50410 + 410550 Bytes symbol space free

      0 Warning Errors
      3 Severe  Errors
lu675804358
[第3楼]   [ 回复时间:2012-02-19 00:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2012-02-10 02:48
啊。。。通过编译啦。居然是第一行打错了一个字。。。嘿嘿。。。
wjb0001
[第4楼]   [ 回复时间:2012-02-23 20:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-20 08:57
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' 
   dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 
   dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000
   dd 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 bx,0 
       mov si,0 
       mov ax,table 
       mov es,ax 
       mov di,0 
       mov cx,21 
    s: mov ax,[bx] 
       mov es:[si],ax 
       mov ax,[bx+2] 
       mov es:[si+2],ax 

       mov ax,[bx+84] 
       mov es:[si+5],ax 
       mov ax,[bx+86] 
       mov es:[si+7],ax 

       mov ax,[di+168] 
       mov es:[si+10],ax 
       mov ax,es:[si+5]   ; 这里你都没用加es:
       mov dx,es:[si+7]   ;这里你都没用加es:
       div word ptr es:[si+10]   ;这里你都没用加es:
       mov es:[si+13],ax 

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

       mov ax,4c00H 
       int 21H 
codesg ends 
end start 
你比我写的简单啊 ,给你改好了
helloyy
[第5楼]   [ 回复时间:2013-08-13 21:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-08-06 09:57
笨蛋!
zxm19820916
[第6楼]   [ 回复时间:2015-03-09 16:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-03-09 09:33
我第一次只用了si,要写2个循环,一个加4,一个加2。
看了楼主的,简单,再用一个di。si + 4,di + 2,一个循环搞定。
我和楼主对于si和bx用起来相反。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved