汇编网首页登录博客注册
kingsgg的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  不是我不努力,不是我不勤奋,但天意总难料,心比天高,命比纸薄,革命尚未成功,同志还需努力,奋力向前冲!
  • 『姓名』:临老学汇编
  • 『性别』:男『发送消息
  • 个人说明:工作时间较忙,还要养家活儿,以前的最爱网游也抛弃了,十分无耐,年纪不大也不少,工作、生活压力渐渐加大,只好找份兼职,无耐却是有心无力,知识文化低,唯有用力挤点时间出来,学一些自己感兴趣的知识,七分努力,三分天注定,不知道我还能努力多久,只有努力、努力再努力,谋事在人,成事在天,一切就看天意吧!
  • 详细信息『加为好友』
学习动态
文章收藏
友情链接

[2012-04-23 12:48] 17.3字符串输入()

assume cs:code

code segment

start:mov dh,5
      mov dl,0    ;以上2行自己加的,只想看实验实验结果
      call short getstr
      mov ax,4c00h
      int 21h

 getstr: push ax和讨论   ;以下照书抄的

 getstrs:mov ah,0
         int 16h
         cmp al,20h
         jb nochar
         mov ah,0
         call charstack
         mov ah,2
         call charstack
         jmp getstrs

  nochar:cmp ah,0eh
         je backspace
         cmp ah,1ch
         je enter
         jmp getstrs

 backspace:mov ah,1
           call charstack
           mov ah,2
           call charstack
           jmp getstrs

   enter: mov al,0                   
          mov ah,0
          call charstack
          mov ah,2
          call charstack
          pop ax
          ret

charstack:jmp short charstart

     table dw charpush,charpop,charshow
     top dw 0

charstart:push bx
          push dx
          push di
          push es

          cmp ah,2
          ja sret
          mov bl,ah
          mov bh,0
          add bx,bx
          jmp word ptr table[bx]

charpush: mov bx,top
          mov [si][bx],al
          inc top
          jmp sret

charpop: cmp top,0
         je sret
         dec top
         mov bx,top
         mov al,[si][bx]
         jmp sret

charshow:mov bx,0b800h
         mov es,bx
         mov al,160
         mov ah,0
         mul dh
         mov di,ax
         add dl,dl
         mov dh,0
         add di,dx
         mov bx,0

charshows:cmp bx,top
          jne noempty
          mov byte ptr es:[di],' '
          jmp sret

noempty:  mov al,[si][bx]
          mov es:[di],al
          mov byte ptr es:[di+2],' '
          inc bx
          add di,2
          jmp charshows

sret: pop es
      pop di
      pop dx
      pop bx
      ret

code ends
end start
      
程序运行后有时运行几遍都可以稳定运行,有时一运行却崩溃了,一直都未找到原因,请老师指点啊,一直在这里纠结中,结果不停的翻查16章和17章,搞得前段时间16、17章的概念都搞混了。
评论次数(1)  |  浏览次数(453)  |  类型(汇编作业) |  收藏此文  | 

[  游客   发表于  2012-04-23 23:05  ]

经多次测试,超过10个字母就崩溃了,真奇怪,不知道是什么问题

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码