. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  为什么不显示字符只显示一排笑脸呢?  [待解决] 回复[ 5次 ]   点击[ 355次 ]  
jovon
[帖 主]   [ 发表时间:2010-08-31 21:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-10 22:43
显示字符的子程序,大家帮忙分析下
assume cs:code
data segment
   db 'Welcome to masm!',0
data ends
stack segment
  db 10 dup(0)
stack 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 ch,0
         push cx
         mov al,dh
         mov ah,0
         mov cx,ax
         mov ax,0
 s:      add ax,0a0h
         loop s
         mov cl,dl
         add ax,cx
         mov si,ax
         pop cx
         mov al,0
         mov ah,cl
         mov di,0
s0:      mov cl,ds:[di]
         mov es:[si],cl
         inc si
         mov es:[si],ah
         jcxz ok
         inc si
         inc di
         jmp s0
 ok:ret
code ends
end start
masmaster
[第1楼]   [ 回复时间:2010-09-01 11:07 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
最好能把注释加上,便于自己也便于别人阅读
jovon
[第2楼]   [ 回复时间:2010-09-02 07:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-10 22:43
这是实验10的第一个子程序,前半部分是书上的,重点是show_str这段子程序的问题,能在8行3列显示,但不是字符
nice_future
[第3楼]   [ 回复时间:2010-09-09 09:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-14 15:30
加点注释吧,真的不好读耶~~!过了好几天啦,不知道你解决了没有!程序的问题出在pop cx前面三句,
          mov cl,dl 
         add ax,cx 
         mov si,ax 
这三句,你debug到这两句时注意下,当时si的值为503,是奇数的,也就是说你把字符保存到了储存颜色这些信息的内存单元中!还有就是你行列转换成内存地址的方法有点问题,所以不能显示在第八行第三列了,这也是出现错误的原因!
mygod
[第4楼]   [ 回复时间:2010-09-10 22:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-30 20:59
一年前的程序,今天才看到,仔细看了一下,不多做调整。。。。。
在标号S第三句mov cl,dl后,加上add cl,cl.....大方面没问题,细节上思维不是很清晰,有好些语句是不是需要的
wuchaofanaa
[第5楼]   [ 回复时间:2010-09-11 15:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-22 11:46
s:      add ax,0a0h 
         loop s 
?
为什么不用MUL指令
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved