| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 407 人关注过本帖
标题:帮忙看下这段程序那里错了
收藏  订阅  推荐  打印
汇编之神
Rank: 1
等级:新手上路
帖子:11
积分:222
注册:2008-7-19
帮忙看下这段程序那里错了

初学汇编

题目要求是写7ch中断实现在屏幕上显示一个字符串

我这样写的


cs:code

data segment
    db "hello to masm",0
data ends
stack segment
    db 64 dup(0)
stack ends
code segment
start:    mov ax,data    ;寄存器初始化
    mov ds,ax
    mov ax,stack
    mov ss,ax
    mov sp,64
    
    push ds
    mov cx,offset d7cend-offset d7c        ;安装d7c程序
    mov ax,0000h
    mov es,ax
    mov ax,cs
    mov ds,ax
    mov di,200h
    mov si,offset d7c
    cld
    rep movsb
    mov word ptr es:[7ch*4],200h
    mov word ptr es:[7ch*4+2],0000h
    pop ds
    mov ah,20            ;7ch中断调用初始化
    mov al,12
    mov si,0
    int 7ch               ;调用7ch中断程序
    
    
    mov ax,4c00h
    int 21h






;--------7ch中断---------

d7c:    push si        ;字符串起始地址
    push es
    push di
    push ax        ;显示行列
    push cx        
    mov di,0b800h
    mov es,di
    
    dec ah
    dec al
    
    push ax
    mov ah,160
    mul ah
    mov di,ax
    pop ax
    mov al,ah
    mov ah,0
    add ax,ax
    add di,ax
    
    mov ch,0
l:    mov cl,ds:[si]
    jcxz lend
    mov es:[di],cl
    inc si
    add di,2
    jmp l
lend:    pop cx
    pop ax
    pop di
    pop es
    pop si
    iret    
d7cend:    nop
    
code ends
end start

我用的系统是vista  运行的时候好像没有显示
2008-8-3 23:01
汇编之神
Rank: 1
等级:新手上路
帖子:11
积分:222
注册:2008-7-19



当前es=b800h si=070ch

cl=6c

为啥   mov es:[si],cl 之后

内存b800:071c处的值不是6c阿


[ 本帖最后由 汇编之神 于 2008-8-3 23:17 编辑 ]
2008-8-3 23:12
ONEPROBLEM
Rank: 12Rank: 12Rank: 12
来自:编程中国
等级:版主
威望:8
帖子:1363
积分:12432
注册:2008-7-11

mov ch,0
l:    mov cl,ds:[si]
    jcxz lend
    mov es:[di],cl
    inc si
    add di,2
    jmp l
================================
"l:"这个标号是不是放错地方了?
应该上抬一行吧,(也许是粘贴的时候不对齐,呵呵~~)
   
l:  mov ch,0
    mov cl,ds:[si]
    jcxz lend
    mov es:[di],cl
    inc si
    add di,2
    jmp l
===================
这样jcxz指令才起作用吧?
2008-8-4 22:49
共有 406 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.048887 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved