汇编实验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

 

 

 

  

 

转载于:https://www.cnblogs.com/Since-natural-ran/p/6931360.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值