. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  实验9,根据材料编程  [待解决] 回复[ 7次 ]   点击[ 463次 ]  
hansonjan
[帖 主] [ 发表时间:2009-05-21 22:51 ] 
荣誉值:0
信誉值:0
注册日期:2009-05-13 22:27
;花了不少时间,终于做出来了。贴出来跟大家分享一下.   (汇编还是蛮好玩的^_^)
;每行为80个字符.即160个字节.共25行要写三行,共有22个空行.即前面空11行
;160字节*11行=1760个字节
;"welcome to masm"字符串共15字符30个字节
;属性15个字符30个字节
assume cs:code
;先将要填充的数据定义好,然后将其复制到目标内存中即可.
data segment
  ;160字节*11行+30字符+30字节=1760+60字节=1820字节
  db 1820 dup(0)
  db 'w',2,'e',2,'l',2,'c',2,'o',2,'m',2,'e',2,0,2,'t',2,'o',2,32,0,'m',2,'a',2,'s',2,'m',2
  ;160字节-30字节=130字节
  db 130 dup(0)
  db 'w',44,'e',44,'l',44,'c',44,'o',44,'m',44,'e',44,0,44,'t',44,'o',44,0,44,'m',44,'a',44,'s',44,'m',44
  db 130 dup(0)
  db 'w',71,'e',71,'l',71,'c',71,'o',71,'m',71,'e',71,0,71,'t',71,'o',71,0,71,'m',71,'a',71,'s',71,'m',71
  ;后面补0填满一屏
  db 3000 dup(0)
data ends
code segment
start:        mov ax,0B800H
        mov es,ax
        mov ax,data
        mov ds,ax
        mov bx,0
        ;4000不是一个很精确的数字,但是足以填满一屏
        mov cx,4000
    s:  mov al,[bx]
        mov es:[bx],al
        inc bx
        loop s
        
        mov ax,4c00H
        int 21H
code ends
end start
jackli715239314
[第4楼] [ 回复时间:2011-09-05 16:49 ] 
荣誉值:0
信誉值:0
注册日期:2011-09-05 09:58
佩服!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved