. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  实验9,我用30行代码完成!  [待解决] 回复[ 2次 ]   点击[ 325次 ]  
crg007
[帖 主] [ 发表时间:2010-05-09 19:50 ] 
荣誉值:4
信誉值:4
注册日期:2009-07-29 23:59
assume cs:dm,ds:sj
sj segment
  db 'welcome to masm!'
sj ends

dm segment
yk:mov ax,sj
   mov ds,ax
   mov ax,0b800h  
   mov es,ax                          ;设置屏幕显示区的段地址

   mov di,0
   mov bx,0
   mov si,0
   mov cx,16

 s:mov al,[di]                       ;将字符送入寄器AL中 
   mov byte ptr es:[bx+si+1984],al   ;将字符在屏幕的第12行的中间位置显示 
   mov byte ptr es:[bx+si+1985],02h  ;设置字符显示为绿色

   add bx,0a0h                       ;换行设置
   mov byte ptr es:[bx+si+1984],al   ;将字符在屏幕的第13行的中间位置显示
   mov byte ptr es:[bx+si+1985],24h  ;设置字符显示为绿底红字字符


   add bx,0a0h                       ;换行设置
   mov byte ptr es:[bx+si+1984],al   ;将字符在屏幕的第14行的中间位置显示
   mov byte ptr es:[bx+si+1985],71h  ;设置字符显示为白底蓝字字符
   
   mov bx,0                          ;设置行位倒回第12行
   add si,2                          ;设置要显示在屏幕中间的下一个字符的偏移地址
   inc di                            ;设置要读取下一个字符的偏移地址
   loop s

   mov ax,4c00h
   int 21h
dm ends
end yk
ballage
[第2楼] [ 回复时间:2024-02-18 13:23 ] 
荣誉值:0
信誉值:0
注册日期:2023-10-04 20:30
厉害
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved