| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1122 人关注过本帖
标题:帮忙看下这段程序那里错了
只看楼主 加入收藏
汇编之神
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-19
收藏
 问题点数:0 回复次数:2 
帮忙看下这段程序那里错了
初学汇编

题目要求是写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  运行的时候好像没有显示
搜索更多相关主题的帖子: 寄存器 axmov offset segmentdb 
2008-08-03 23:01
汇编之神
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-19
收藏
得分:0 


当前es=b800h si=070ch

cl=6c

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

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


[[it] 本帖最后由 汇编之神 于 2008-8-3 23:17 编辑 [/it]]
2008-08-03 23:12
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
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-08-04 22:49
快速回复:帮忙看下这段程序那里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025417 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved