注册 登录
编程论坛 汇编论坛

我的程序为什么不能返回啊

a741545648 发布于 2011-08-06 16:11, 412 次点击
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start: mov dh,8
      mov al,3
      mov cl,2
      mov ax,data
      mov ds,ax
      mov si,0
      call show_str
      
      mov ax,4c00h
      int 21h
      
show_str: push cx
       mov ax,dx
       mov al,0
       mov bx,160
       mov cx,[si]
       jcxz s
       mov ax,0b800h
       mov es,ax
       pop cx
       mov bx,0
       mov bh,[si]
       mov bl,cl
       mov es:[dl],bx
       inc si
       add di,2
       jmp word ptr show_str
    s:ret
2 回复
#2
诸葛修勤2011-08-07 00:07
这个程序 能行?

实现个什么功能。。。。。

[ 本帖最后由 诸葛修勤 于 2011-8-7 00:10 编辑 ]
#3
obstratiker2011-08-07 00:34
能返回,不过有错误,并且程序实现不了你想要的功能
错误是
        mov es:[di],bx
写成了
        mov es:[dl],bx
然后错误没有虚了
程序上有很多问题
比如一开始的 mov dh,8什么的,没用
然后用于定位屏幕输出的 bx ,后面被覆盖掉了
屏幕上当然看不到东西
最后跳转的指令写 jmp short show_str
1