. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->更灵活的定位内存地址的方法
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  请帮我看看为什么编译通不过  [已解决] 回复[ 9次 ]   点击[ 402次 ]  
181763116
[帖 主]   [ 发表时间:2008-03-04 15:59 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14
为什么??我哪里错了??找了半天都找不出哪里有错  请路过的神仙给我当头一棒吧
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
 dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
 db '1, display      '
 db '2, brows        '
 db '3, replace      '
 db '4, modify       '
datasg ends
codesg segment
start:mov ax,datasg
      mov ds,ax
      mov ax,stacksg
      mov ss,ax
      mov sp,10h
      mov bx,3h
      mov cx,4
      push cx
    s:mov si,0
      mov cx,4
    s1:mov al,[bx+si]
      and al,11011111h
      mov [bx],al
      inc si
      loop s1
      pop cx
      add bx,10h
      loop s
      mov ax,4c00h
      int 21h
 codesg ends
 end start
181763116
[第1楼]   [ 回复时间:2008-03-04 16:13 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14
自己发现一处错误   S1下第三行改为mov [bx+si],al   可还是没通过  郁闷 继续找
181763116
[第2楼]   [ 回复时间:2008-03-04 16:16 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14
又一处  没把PUSH循环进去  改  ……还是没通过  要哭了  继续找
mouse
[第3楼]   [ 回复时间:2008-03-04 16:16 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
and al,11011111h 
---
这里用h,值太大了,al放不下;)

上面楼主自己找出的错误不是编译错误。
mouse
[第4楼]   [ 回复时间:2008-03-04 16:19 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
下面是编译器提示的错误原因,楼主要习惯于看这个信息,调试程序比写程序还重要呢o(∩_∩)o...

Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987.  All rights reserved.

0.ASM(23): error A2029: Division by 0 or overflow

  50790 + 446378 Bytes symbol space free

      0 Warning Errors
      1 Severe  Errors
181763116
[第5楼]   [ 回复时间:2008-03-04 16:24 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14
为什么你们的有0.ASM(23): error A2029: Division by 0 or overflow 

  50790 + 446378 Bytes symbol space free 

      0 Warning Errors 
      1 Severe  Errors
而我的直接一闪而过  什么也看不清就没了
mouse
[第6楼]   [ 回复时间:2008-03-04 16:25 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
编译错误没有了,如果还有错就剩下逻辑错误了。

我的习惯是从简到繁写程序,比如这个程序,先对一个字符串操作再进行四次循环。debug跟踪是调试逻辑错误不错的选择。 t命令 g命令 以后还会用到的p命令等等
181763116
[第7楼]   [ 回复时间:2008-03-04 16:27 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14
汗  终于过了   就一个进制代号错了  害我晕呼半天  不过找错误好象收获更大  哈哈
mouse
[第8楼]   [ 回复时间:2008-03-04 16:29 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
不要用集成环境,按照书上第四章的步骤编译连接程序。

不是集成环境不好,而是集成环境不适合初学者,屏蔽了很多东西,并且出的问题也有可能是集成环境的问题而非程序的。Division by 0 or overflow  这个错误信息在集成环境下可能会被制作集成环境的人写成其他的提示信息。不过很多高手真正调试程序的时候都不用集成环境。
181763116
[第9楼]   [ 回复时间:2008-03-07 23:37 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14
此贴由 贴主 于 [ 2008-03-07 23:37 ] 结贴。 结贴原因:问题已解决
得分情况: 4楼(mouse):5分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved