鱼C论坛

 找回密码
 立即注册
查看: 3028|回复: 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



小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 13:01:50 | 显示全部楼层
计算行与列那里处理的有点乱,以及CX储存的颜色那。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. data    segment
  3.         db      'Welcome to masm!',0
  4. data    ends

  5. code    segment
  6. start:            mov             dh,8           ;8行     8*160
  7.                   mov             dl,3           ;3列     3 * 2
  8.                   mov             cl,2           ;颜色
  9.                   mov             ax,data
  10.                   mov             ds,ax
  11.                   mov             si,0
  12.                   call            show_str      ;显示字符
  13.                   

  14.                   mov             ax,4c00h
  15.                   int             21h     
  16.                   
  17.                   
  18. show_str:         mov             ax,0b800h
  19.                   mov             es,ax
  20.                   mov ah,0 ;先清0试下
  21.                   
  22.                   mov             al,0a0h         ;B800H  +  160    也就是一行
  23.                   dec             dh    ;前面加了一行,这里-1,对的~嘿嘿   
  24.                   
  25.                   
  26.                   mul             dh    ;在这之前,要保存一下AX才行  
  27.                   mov bx,ax
  28.                   mov             dh,0   
  29.                   add dl,dl
  30.                   add bx,dx
  31.                                                                                 
  32.                   ;mov             bx,ax



  33. show_obj:         push            cx      ;保存CX
  34.                   mov             ch,0
  35.                   mov             cl,ds:[si]
  36.                   jcxz            ok

  37.                   

  38.                   mov             al,[si]
  39.                   mov         es:[bx],al
  40.                   pop            cx
  41.                   mov                  al,cl
  42.                   mov          es:[bx+1],al
  43.                   add             bx,2
  44.                   inc             si
  45.                   jmp             short   show_obj

  46.    ok:                                                pop     cx
  47.                                                                 ret
  48. code            ends
  49.         end     start
复制代码
希望你满意哈
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-28 14:17:53 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

两段代码比较一下就好,就是行数和列数那没处理好而已
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

add     dl,dl    这里没看懂   
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

我原来的代码加进   add     dl,dl   就可以了         虽然不懂      但还是谢谢你了  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

dl上面有注释,是存放的列数,
字符  颜色
dl      CL   
加上颜色的一个字节,相当于DL乘2,才是真正的位置。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

不用客气的同学!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 16:27:44 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-28 16:53:01 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

版主真是给力啊!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-30 13:14:56 | 显示全部楼层
激动人心,无法言表!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-21 21:50:58 | 显示全部楼层
楼主加油~~帮顶
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 19:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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