鱼C论坛

 找回密码
 立即注册
查看: 2757|回复: 13

下面的代码那里出错了??

[复制链接]
发表于 2013-5-28 12:41:35 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 s0512 于 2013-6-13 14:51 编辑

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

                                                        mov             ax,4c00h
                                                        int             21h
show_str:                    mov             ax,0b800h
                                                                 mov             es,ax
                                                                mov             al,0a0h
                                                                dec             dh
                                                                mul             dh
                                                                mov             dh,0
                                                                add             ax,dx                                                              
                                                                mov             bx,ax



show_obj:                       push            cx
                                                                mov             ch,0
                                                                mov             cl,ds:[si]
                                                                jcxz            ok

                                                                                10

                                                                mov             al,[si]
                                                                mov         es:[bx],al
                                                                   pop            cx
                                                                   mov                  al,cl
                                                                mov          es:[bx+1],al
                                                                add             bx,2
                                                                inc             si
                                                                jmp             short   show_obj

   ok:                                                pop     cx
                                                                ret
code            ends
        end     start



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 13:01:50 | 显示全部楼层
计算行与列那里处理的有点乱,以及CX储存的颜色那。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 13:45:41 | 显示全部楼层
assume          cs:code 

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

code    segment
start:            mov             dh,8           ;8行     8*160
                  mov             dl,3           ;3列     3 * 2
                  mov             cl,2           ;颜色
                  mov             ax,data
                  mov             ds,ax
                  mov             si,0
                  call            show_str      ;显示字符
                  

                  mov             ax,4c00h
                  int             21h     
                  
                  
show_str:         mov             ax,0b800h
                  mov             es,ax 
                  mov ah,0 ;先清0试下 
                  
                  mov             al,0a0h         ;B800H  +  160    也就是一行
                  dec             dh    ;前面加了一行,这里-1,对的~嘿嘿   
                  
                  
                  mul             dh    ;在这之前,要保存一下AX才行  
                  mov bx,ax
                  mov             dh,0    
                  add dl,dl
                  add bx,dx
                                                                                
                  ;mov             bx,ax



show_obj:         push            cx      ;保存CX
                  mov             ch,0
                  mov             cl,ds:[si]
                  jcxz            ok

                  

                  mov             al,[si]
                  mov         es:[bx],al
                  pop            cx
                  mov                  al,cl
                  mov          es:[bx+1],al
                  add             bx,2
                  inc             si
                  jmp             short   show_obj

   ok:                                                pop     cx
                                                                ret
code            ends
        end     start
希望你满意哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-28 14:17:53 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 14:32:21 | 显示全部楼层
asyz8573 发表于 2013-5-28 14:17
还是不懂...   详细点被

两段代码比较一下就好,就是行数和列数那没处理好而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-28 14:52:52 | 显示全部楼层
s0512 发表于 2013-5-28 14:32
两段代码比较一下就好,就是行数和列数那没处理好而已

add     dl,dl    这里没看懂   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-28 15:01:20 | 显示全部楼层
s0512 发表于 2013-5-28 14:32
两段代码比较一下就好,就是行数和列数那没处理好而已

我原来的代码加进   add     dl,dl   就可以了         虽然不懂      但还是谢谢你了  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 15:01:53 | 显示全部楼层
asyz8573 发表于 2013-5-28 14:52
add     dl,dl    这里没看懂

dl上面有注释,是存放的列数,
字符  颜色
dl      CL   
加上颜色的一个字节,相当于DL乘2,才是真正的位置。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 15:05:46 | 显示全部楼层
asyz8573 发表于 2013-5-28 15:01
我原来的代码加进   add     dl,dl   就可以了         虽然不懂      但还是谢谢你了

不用客气的同学!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 16:27:44 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 16:53:01 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-29 08:47:13 | 显示全部楼层
s0512 发表于 2013-5-28 15:05
不用客气的同学!!

版主真是给力啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-30 13:14:56 | 显示全部楼层
激动人心,无法言表!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-21 21:50:58 | 显示全部楼层
楼主加油~~帮顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 23:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表