. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于多个代码段的问题  [待解决] 回复[ 6次 ]   点击[ 272次 ]  
hdb
[帖 主]   [ 发表时间:2012-02-28 10:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-02-05 17:11
以前写的代码都是一个代码段的,但是一个代码段就有大小的限制,今天就写了个有过个代码段的程序都是有错,请指点......
如果我的代码有多个代码段编译的时候怎么通不过?
eg: (该实例没有什么特别的含义)
assume cs:code
data0 segment
        db 16 dup(0)
data0 ends
data segment
        db 16 dup(0)
data ends
code segment
main:mov ax,data
         mov ds,ax
         mov ax,data0
         mov es,ax
         mov si,0
         
         mov ax,code2
         mov word ptr ds:[0],0
         mov ds:[2],ax

         mov ax,4
         call dword ptr ds:[0];to code2
         mov ax,4c00h
         int 21h
         
code ends
code2 segment
        jmp short code2_code1 ;(1)
        mov ax,9
        code2_code1:inc ax    ;(2)
        mov ax,8
        retf        
code2 ends
end main
编译报错:t5.ASM(28): error A2062: Missing or unreachable CS
如果将(1)去掉,并把(2)处改成 inc ax就正确了,这是怎么回事?难道在两个代码段中转移有什么需要注意的吗?请求指点迷津,先谢了
tomato
[第1楼]   [ 回复时间:2012-02-28 22:24 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
为什么要写在两个代码段中,一个就够了。
tomato
[第2楼]   [ 回复时间:2012-02-28 22:26 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
assume cs:code 
data0 segment 
        db 16 dup(0) 
data0 ends 
data segment 
        db 16 dup(0) 
data ends 
code segment 
main:mov ax,data 
         mov ds,ax 
         mov ax,data0 
         mov es,ax 
         mov si,0 
          
         mov ax,code2 
         mov word ptr ds:[0],0 
         mov ds:[2],ax 

         mov ax,4 
         call dword ptr ds:[0];to code2 
         mov ax,4c00h 
         int 21h 
        jmp short code2_code1 ;
        mov ax,9 
        code2_code1:inc ax    ;(2) 
        mov ax,8 
        retf         
code ends 
end main
tomato
[第3楼]   [ 回复时间:2012-02-28 22:26 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
去了一个代码段,具体细节没调整。
hdb
[第4楼]   [ 回复时间:2012-02-29 13:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-02-05 17:11
回复:[第3楼]
------------------
我就是像要多个代码段的,应该怎么调整
tomato
[第5楼]   [ 回复时间:2012-02-29 21:47 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
没这么做过,如果楼主研究出来了,可以给大家分享一下。
hdb
[第6楼]   [ 回复时间:2012-03-01 19:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-02-05 17:11
回复:[第5楼]
------------------
我也没有弄出来
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved