. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9(比较懒的写法,大家指正下,哪里需要改进。)  [待解决] 回复[ 3次 ]   点击[ 386次 ]  
song1214
[帖 主]   [ 发表时间:2009-05-06 21:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-04 18:10
assume        cs:code,ds:data

data segment
        db 'welcome to masm!'
data ends

code segment

start:        mov ax,data
        mov ds,ax
        mov ax,0b800h
        mov es,ax


        mov bx,0
        mov bp,64
        mov si,0
        mov di,0
        mov cx,16
        ;以上属常规初始化
        ;一下属功能实现部分
s:        mov al,[bx+si]        ;以字节为单位,复制字符串,使用地位字节存储
        mov ah,2h        ;设置属性:显示绿色(00000010)即2H,使用高位字节存储
        mov es:780h[bp+di],ax        ;复制ax的内容到目的地址
        mov ah,24h        ;覆盖ah内容,从而改变属性值
        mov es:780h[bp+di+0a0h],ax        ;复制ax的内容到目的地址,此时已是第2行        
        mov ah,1h        ;覆盖ah内容,从而改变属性值
        mov es:780h[bp+di+140h],ax        ;复制ax的内容到目的地址,此时已是第3行
        inc si
        add di,2
        loop s

        mov ax,4c00h
        int 21h

code ends

end start



屏幕中间?
不知道小弟定位错了没?望高人指点下。。。。。
1169205963
[第1楼]   [ 回复时间:2009-05-07 14:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-24 09:00
你这个思路不错 不过 你这里bp是64是?怎么来的
zh230076
[第2楼]   [ 回复时间:2009-05-16 22:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-25 16:57
恩定位在0b872h试试吧
song1214
[第3楼]   [ 回复时间:2009-05-20 13:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-04 18:10
定位也搞定了,现在是完全正确的版本了!

assume    cs:code,ds:data

data segment
    db 'welcome to masm!'
data ends

code segment

start:    mov ax,data
    mov ds,ax
    mov ax,0b800h
    mov es,ax


    mov bx,0
    mov bp,64
    mov si,0
    mov di,0
    mov cx,16
    ;以上属常规初始化
    ;一下属功能实现部分
s:    mov al,[bx+si]    ;以字节为单位,复制字符串,使用地位字节存储
    mov ah,2h    ;设置属性:显示绿色(00000010)即2H,使用高位字节存储
    mov es:0be0h[bp+di],ax    ;复制ax的内容到目的地址
    mov ah,24h    ;覆盖ah内容,从而改变属性值
    mov es:0be0h[bp+di+0a0h],ax    ;复制ax的内容到目的地址,此时已是第2行    
    mov ah,1h    ;覆盖ah内容,从而改变属性值
    mov es:0be0h[bp+di+140h],ax    ;复制ax的内容到目的地址,此时已是第3行
    inc si
    add di,2
    loop s

    mov ax,4c00h
    int 21h

code ends

end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved