. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9,我也来提问  [待解决] 回复[ 5次 ]   点击[ 193次 ]  
helonsy
[帖 主]   [ 发表时间:2010-07-24 11:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-11 16:57
assume cs:codesg

datasg segment
db 'welcome to masm!',0
db 00000010b,00100100b,01110001b
datasg ends

codesg segment
start:        mov ax,0600h;清屏
        mov bh,3ah
        mov cx,0000h
        mov dx,184fh
        int 10h  

        mov ax,0b800h;段寄存器初始化
        mov es,ax
        mov ax,datasg
        mov ds,ax

        mov si,0;data段中按字节增长
        mov di,0;显示缓存中按字增长
        mov bx,40h;第0行的中间位置
        add bx,6e0h;从0行到第11行所加的距离
        mov bp,0;显示的颜色,按字节增长
        mov cx,3;循环3行
        
s:        push cx
        mov cl,[si]
        mov ch,0
        jcxz s0;如果读到0,说明一行结束了,返回外循环
        mov es:[bx][di],cl
        mov al,ds:11h[bp]
        mov byte ptr es:[bx][di+1],al
        inc si
        inc di
        inc di
        jmp short s

s0:        pop cx
        add bx,160;指向下一行
        inc bp;指向下一种颜色
        mov si,0
        mov di,0
        loop s

        mov ah,0;等待输入
        int 16h

        mov ax,4c00h;返回操作系统
        int 21h
codesg ends

end start
以上是我的代码,我感觉是对的,可是结果是满屏幕都是 welcome to masm!
怎么回事啊?
masmaster
[第1楼]   [ 回复时间:2010-07-24 12:25 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
写完程序强烈建议debug~~~
helonsy
[第2楼]   [ 回复时间:2010-07-24 16:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-11 16:57
怎么没人回我的帖子啊?我还没有弄出来啊。。。
till
[第3楼]   [ 回复时间:2010-07-24 18:44 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2008-06-04 16:24
本想帮你调试调试的 可仔细一分析 你的程序废话太多 什么“清屏"什么"等待输入 "要这些干什么呢 建议楼主不要画蛇添足了 老老实实的写程序
helonsy
[第4楼]   [ 回复时间:2010-07-24 21:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-11 16:57
谢谢楼上,我现在已经搞定了,呵呵。。。。
helonsy
[第5楼]   [ 回复时间:2010-07-24 21:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-11 16:57
我错误的原因是:
s:        push cx 
        mov cl,[si] 
        mov ch,0 
要把此处的push cx放到s之外。
大家以后可以参考了。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved