. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
主题 : :  实验10第一个子程序,可以正常退出,但不能按要求显示字符,始终不解,望高手指点  [已解决] 回复[ 6次 ]   点击[ 702次 ]  
debugkkk
[帖 主] [ 发表时间:2008-05-24 23:11 ] 
荣誉值:0
信誉值:16
注册日期:2008-03-17 20:21
程序如下,debug后-d bd06:0000,显示Welcome to masm!已经拷贝过去,但不知道为什么就是不显示,各位高手,有空的话帮忙看看程序吧,谢谢啦~

assume cs:code

data segment
    db 'Welcome to masm!',0
data ends

code segment

start:
      mov dh,8
      mov dl,3
      mov cl,2
      mov ax,data
      mov ds,ax
      mov si,0
      call show_str  ;IP=0011H被压入栈
     
      mov ax,4c00h
      int 21h

 show_str:
         
     mov ax,0b800h
     mov di,0
     mov bl,cl              ;bl=02
     
        mov ch,0
        mov cl,dh           ;cx=0008
     s1:
        add ax,160
        loop s1             ;ax=bd00,cx=0
        
        mov cl,dl
     s2:
        add ax,2
        loop s2              ;ax=bd06,cx=0
        mov es,ax            ;es=bd06
              
    s3:
       mov ah,bl
       mov al,[di]
       mov es:[si],ax
     
       mov cl,[di]
       jcxz ok
       inc di
       add si,2
       jmp short s3

    ok:
       ret

code ends
end start
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved