. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  大哥们帮我看看,为什么会这样  [待解决] 回复[ 1次 ]   点击[ 296次 ]  
lyh1984
[帖 主]   [ 发表时间:2009-06-19 17:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-25 09:01
assume cs:code

data segment
        db 'work',0
        db 'unix',0
        db 'wind',0
        db 'good',0
        
data ends

stack segment
db 10h dup (0)
stack ends

code segment

        start:        mov ax,data
                        mov ds,ax
                        mov bx,0
                        mov ax, stack
                        mov ss,ax
                        mov sp,16
                        
                        mov cx,4
                s:        mov si,bx
                        call capital
                        add bx,5
                        loop s
                        
                        mov ax,4c00h
                        int 21h
                        
                        
capital:        push si
                        push cx
                        
change:                mov cl,[si]
                        mov ch,0
                        jcxz ok
                        and byte ptr [si],11011111b
                        inc si
                        jmp short change
        ok:                pop cx
                        pop si
                        ret


code ends
end start
lyh1984
[第1楼]   [ 回复时间:2009-06-19 17:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-25 09:01
我想问的是:
db 'work',0 
db 'unix',0 
db 'wind',0 
db 'good',0 

我用DEBUG看,
发现如果我只有前面两个‘DB’CS = OC4D,如果只有前三个,也是CS = OC4D,全部才是OC4E,而我认为全部应该是OC4F,我想问下为什么我认为的不正确?thanks
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved