汇编实验9

1、输出三种不同颜色的字符串

  

assume cs:code,ds:string,es:color,ss:stack
string segment
    db 'welcome to masm!'
string ends

color segment
    db 2,36,113     ;属性化为十进制的数字
color ends

stack segment
    db 16 dup(0)
stack ends

code segment
start:
    mov ax,string
    mov ds,ax       ;字符串的位置
    mov si,16       ;颜色属性的位置

    mov ax,stack    ;为了保存cx
    mov ss,ax
    mov sp,16       ;栈顶

    mov ax,0b800h   ;显示段地址
    mov es,ax
    mov bp,0720h    ;字母首地址
    mov cx,3
s1:
    mov di,0        ;初始化相对位置
    push cx         ;保存外循环
    mov bx,0        ;首字母位置
    mov cx,16       ;字符串长度
s2:
    mov al,[bx]
    mov es:[bp+di],al   ;传递字符
    mov al,[si]
    mov es:[bp+di+1],al ;传递属性
    add di,2            ;显示的相对位置
    inc bx              ;下一个字母
    loop s2

    inc si              ;下一个属性
    add bp,160          ;下一行

    pop cx
    loop s1

    mov ax,4c00h
    int 21h

code ends
end start

 

 

 

  

 

posted @ 2017-06-01 23:44  cs的蜗牛  阅读(123)  评论(0编辑  收藏  举报