. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验九代码  [待解决] 回复[ 2次 ]   点击[ 249次 ]  
ruder
[帖 主]   [ 发表时间:2011-01-09 18:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-02 12:37
assume cs:code

data segment
  ;字符串
  db 'welcome to masm!'
  ;颜色表
  db 00000010b, 00100100b, 01110001b
data ends

code segment
start:
  ;指定数据段
  mov ax, data
  mov ds, ax

  ;指定显存段
  mov ax, 0b800h
  mov es, ax

  ;循环取出颜色表中的颜色值
  mov cx, 3
color:
  ;得到当前颜色
  mov bx, 3
  sub bx, cx
  mov dl, [bx + 10h]

  ;保存cx
  mov bx, cx

  ;以当前颜色显示字符串
  mov si, 0
  mov di, 0
  mov cx, 10h
string:
  ;复制到显存
  mov al, [si]
  ;指定显示模式
  mov es:[di], al
  inc di
  mov es:[di], dl
  ;显示下一字符
  inc di
  inc si
  loop string

  ;恢复cx
  mov cx, bx
loop color

  ;退出
  mov ax, 4c00h
  int 21h
code ends
end start
ruder
[第1楼]   [ 回复时间:2011-01-09 18:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-02 12:37
assume cs:code

data segment
  ;字符串
  db 'welcome to masm!'
  ;颜色表
  db 00000010b, 00100100b, 01110001b
data ends

code segment
start:
  ;指定数据段
  mov ax, data
  mov ds, ax

  ;指定显存段
  mov ax, 0b800h
  mov es, ax

  ;循环取出颜色表中的颜色值
  mov cx, 3
color:
  ;得到当前颜色
  mov bx, 3
  sub bx, cx
  mov dl, [bx + 10h]

  ;保存cx
  mov bx, cx

  ;以当前颜色显示字符串
  mov si, 0
  mov di, 0
  mov cx, 10h
string:
  ;复制到显存
  mov al, [si]
  mov es:[di], al
  ;指定显示模式
  inc di
  mov es:[di], dl
  ;显示下一字符
  inc di
  inc si
  loop string

  ;恢复cx
  mov cx, bx
loop color

  ;退出
  mov ax, 4c00h
  int 21h
code ends
end start
ruder
[第2楼]   [ 回复时间:2011-01-09 20:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-02 12:37
assume cs:code

data segment
  ;字符串
  db 'welcome to masm!'
  ;颜色表
  db 00000010b, 00100100b, 01110001b
data ends

code segment
start:
  ;指定数据段
  mov ax, data
  mov ds, ax

  ;指定显存段
  mov ax, 0b800h
  mov es, ax

  ;循环取出颜色表中的颜色值
  mov cx, 3
color:
  ;得到当前颜色
  mov bx, 3
  sub bx, cx
  mov dl, [bx + 10h]

  ;保存cx
  mov bx, cx

  ;以当前颜色显示字符串
  mov si, 0
  mov cx, 10h
string:
  mov al, [si]
  mov es:[di], al
  inc di
  mov es:[di], dl
  inc di
  inc si
  loop string

  ;恢复cx
  mov cx, bx
loop color
 
  ;睡眠
  mov cx, 0ffffh
sleep1:
  mov bx, cx
  mov cx, 0fffh
sleep2:
  xor ax, ax
  loop sleep2
  mov cx, bx
  loop sleep1

  ;退出
  mov ax, 4c00h
  int 21h
code ends
end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved