. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  一个上午的成果,大家看看编的好不好(实验9 根据材料编程(第175页))  [待解决] 回复[ 2次 ]   点击[ 500次 ]  
alabo886
[帖 主]   [ 发表时间:2009-10-17 13:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-09 19:25
assume cs:code,ds:data,ss:stack      

data segment 
     db "welcome to masm!"      ;定义数据段
     db 2h,24h,71h
data ends

stack segment
     db 16 dup(0)               ;定义堆栈段
stack ends

code segment 
s:mov ax,data
  mov ds,ax                     ;DS指向数据段
  mov ax,stack
  mov ss,ax                     ;SS指向堆栈段
  mov sp,16
  mov bx,16                     ;BX指向字符属性字节
  mov ax,0b872h                 ;AX指向显存段地址(屏幕中间)

  mov cx,3
  l:push ax                     ;保存现场
    push cx
    mov di,0                    ;DI指向显存偏移地址
    mov es,ax                   ;ES指向显存段地址
    mov si,0                    ;SI指向数据段地址

    mov ah,ds:[bx]              ;字符属性字节存入AH
    mov cx,16
    p:mov al,[si]               ;依次将16个字符及其属性字节传送给显存
      mov es:[di],ax
      inc si
      add di,2
      loop p

    pop cx                      ;恢复现场
    pop ax
    inc bx
    add ax,10                   ;AX指向显存下一行
    loop l

  mov ax,4c00h
  int 21h

code ends 
end s
abob
[第1楼]   [ 回复时间:2009-11-17 16:38 ]   [引用]   [回复]   [ top ] 
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
不错,双层循环显示三个字符串,固定的颜色数值也定义到了数据段~
a3187744a
[第2楼]   [ 回复时间:2009-12-21 13:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-14 19:20
编出来就不错了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved