. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  呵呵,学汇编至今快两个星期了,今天的这个代码总算有点成就感,34行代码!  [待解决] 回复[ 2次 ]   点击[ 400次 ]  
it10000
[帖 主]   [ 发表时间:2010-05-04 17:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-04-23 15:57
assume ds:data,cs:code
data segment
db 'welcome to masm!' ;显示的文字
db 2h,24h,71h         ;三种颜色
data ends
code segment
start:mov ax,data  
      mov ds,ax
      mov bx,0        ;
      mov cx,3        ;三次外循环
      mov si,640h     ;行起始地址
      mov ax,0b800h   ;显存的段地址
      mov es,ax
   s: mov dx,cx       ;外循环开始
      mov cx,16       ;16次内循环
      mov bp,72       ;行内基地址
      mov di,0
  s0: mov al,[di]     ;内循环开始,读取字符
      mov ah,[bx+16]  ;读取颜色
      mov es:[si+bp],al;写入显存字符
      mov es:[si+bp+1],ah;写入显存颜色
      add bp,2
      inc di
      loop s0
      mov cx,dx
      add si,0A0h    ;下一个起始地址
      inc bx         ;进行一个外循环
      loop s
      mov ah,0          ;等待任意键入 目的是为了能有时间观察
      int 16h 
      mov ax,4c00h
      int 21h
code ends
end start
versaariel
[第1楼]   [ 回复时间:2010-05-04 21:06 ]   [引用]   [回复]   [ top ] 
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14
挺好的^-^
yyj4968
[第2楼]   [ 回复时间:2010-10-16 23:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-10-09 16:40
写错了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved