. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  实验九——使用行、列两层循环嵌套的程序  [待解决] 回复[ 3次 ]   点击[ 316次 ]  
zoudaokou2006
[帖 主] [ 发表时间:2011-02-14 09:57 ] 
荣誉值:0
信誉值:2
注册日期:2011-02-09 21:07
assume cs:codesg, ss:stacksg, ds:datasg

ATTR_BLUEF                         EQU         00000010B        ;绿色
ATTR_REDF_GREENB                 EQU        00100100B        ;绿底红色
ATTR_BLUEF_WHITEB                EQU        01110001B        ;白底蓝色

datasg segment
        db 'welcome to masm!'
        db ATTR_BLUEF        
        db ATTR_REDF_GREENB
        db ATTR_BLUEF_WHITEB                
datasg ends

stacksg segment 
        dw 0,0,0,0,0,0,0,0
stacksg ends

buff segment
        db 4000 dup (0)
buff ends
        
codesg segment
start:
        mov ax, datasg                        ;用于datasg中数据寻址
        mov es, ax

        mov ax, 0B800H                        ;用于显示缓冲区数据寻址
        mov ds, ax
        
        mov ax, stacksg                        ;创建堆栈
        mov ss, ax
        mov sp, 10h

        mov bx, (11 * 0a0h)                ;缓冲区第12行起始地址

        mov cx, 3                        ;12-14行
        mov bp, 0
line:
        push cx
        mov dl, es:10h[bp]                ;dl保存该行属性

        mov si, 0h
        mov di, 0h        
        mov cx, 10h                        ;33-48列
column:
        mov al, es:0h[di]
        mov [bx][64 + si], al                ;数据
        mov [bx][64 + si + 1], dl        ;属性

        inc di
        add si, 2
        loop column

        add bx, 0a0h                        ;下一行
        inc bp
        pop cx
        loop line

;拷贝出当前25*80缓存,即使刷新界面,仍能检查缓存。
check:
        mov ax, buff
        mov es, ax

        mov ax, 0B800H
        mov ds, ax                

        mov bx, 0
        mov cx, 2000
s:
        mov ax, [bx]
        mov es:[bx], ax

        add bx, 2
        loop s

        mov ax, 4c00h
        int 21h

codesg ends
end        start
jackli715239314
[第3楼] [ 回复时间:2011-09-05 15:56 ] 
荣誉值:0
信誉值:0
注册日期:2011-09-05 09:58
非常不错的程序!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved