. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验九 的问题  [已解决] 回复[ 3次 ]   点击[ 216次 ]  
qiaofeng
[帖 主]   [ 发表时间:2010-03-13 15:08 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-05 10:51
我的代码是:
assuem cs:code , ss:stack , ds:data
data segment
     db 'welcome to masm!'    :es,si/指向
     db 2h,24h,71h            :es,pi/指向
data ends
stack segment
     db 16 dup(0)
stack ends
code segment
 start :
          mov ax,0b871h
          mov ds,ax
          mov bx,0
          mov ax,data
          mov es,ax
          mov ax,stack
          mov ss,ax
          mov sp,10h
          mov si,0
          mov pi,16
          mov cx,3
     s:
          push cx          
          push bx 
          push si 
          push pi
          mov cx,16


         s1:
              
              mov al,es:[si]
              mov [bx],al
              add bx,2
              inc si
              loop s


          mov bx,1
          mov cx,16


         s2:
              mov al,ex:[pi]
              mov [bx],al
              add bx,2
              loop s2


         pop pi
         inc pi
         pop si
         pop bx
         
          mov ax,ds
          add ax,a     :此三句是换行
          mov ds,ax

          pop cx



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



出现的问题是“内存空间不足”,怎么回事呀?谁能帮忙解释一下?
qiaofeng
[第1楼]   [ 回复时间:2010-03-13 15:54 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-05 10:51
这个 错误太多了,我修改了一下,这样的】
assuem cs:code , ss:stack , ds:data
data segment
     db 'welcome to masm!'    :ds,si/指向
     db 2h,24h,71h            :ds,pi/指向
data ends
stack segment
     db 16 dup(0)
stack ends
code segment
 start :
          mov ax,0b871h
          mov es,ax

          mov ax,data
          mov ds,ax
          mov bx,0

          mov ax,stack
          mov ss,ax
          mov sp,10h

          mov si,0
          mov pi,16
          mov cx,3
     s:
          push cx          
          push bx 
          push si 
          push pi
          mov cx,16


         s1:
              mov al,ds:[si]
              mov es:[bx],al
              add bx,2
              inc si
          loop s1


          mov bx,1
          mov cx,16


         s2:
              mov al,ds:[pi]
              mov es:[bx],al
              add bx,2
          loop s2


         pop pi
         inc pi
         pop si
         pop bx
         
          mov ax,es
          add ax,a     :此三句是换行
          mov es,ax

          pop cx
      loop s



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


可是还是出现“内存空间不足”的问题,怎么回事呀?
qiaofeng
[第2楼]   [ 回复时间:2010-03-14 16:29 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-05 10:51
同志们,我是新手,别不理我呀!这样会打击我幼小的心灵的!!
这个错误我自己找出来了,就是不应该有冒号代替分好,把前面的注释前的冒号全部改成分好,再把start后的空格去掉,就基本OK了,而且这里显示的地址也不对,仍然需要修改计算,
好了,就是这样了,我不写了,我要去结贴了。
qiaofeng
[第3楼]   [ 回复时间:2010-03-14 16:31 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-05 10:51
此贴由 贴主 于 [ 2010-03-14 16:31 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved