. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  不用LOOP实现实验9  [待解决] 回复[ 0次 ]   点击[ 332次 ]  
lxran
[帖 主]   [ 发表时间:2010-04-29 18:58 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2009-06-08 19:25
assume cs:code ds:data

data segment
 db 'welcome to masm!'
 db 02h,24h,71h
data ends                         ;数据段,包含字符和色属性

code segment

start:mov ax,data
      mov ds,ax
      mov ax,0b800h
      mov es,ax      ;段地址
      
      
      mov di,7c8h
      mov si,0     
      mov bp,16             ;累加寄存器
   s:
      mov ch,0
      mov cl,ds[si]
      sub cx,20h            ;测试当前字符是否为空格,20h为空格的ASCII码

     
     jcxz s1                     ;是的话则跳转
      
      mov cl,ds[si]
      mov ch,ds[bp]
      mov es:[di],cx
      inc si 
      add di,2           ;不为空格则把字符和色属性写入显示缓存,并递增偏移地址
     
      
      
      sub cx,7121h 

     jcxz short s2 ;这两条指令为判断是否为最后一个字符,是的话就跳到结束,

jmp short s
      
   s1:inc bp
      add si,1
      add di,2         
     
      jmp short s
      
   s2:mov ax,4c00h
       int 21h
code ends
end start

   
      
      
code ends

end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved