汇编编程:在屏幕中间分别显示绿色,绿底红色,白色蓝底的字符串’welcome to masm!’

本文详细介绍了使用MASM在屏幕中间分别显示绿色、绿底红色和白色蓝底的字符串‘welcometomasm!’的三种编程方法。每种方法都通过循环实现,并展示了如何在不同情况下调整文本的颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



实验9显示三行welcome to masm(三个程序)

编程:在屏幕中间分别显示绿色,绿底红色,白色蓝底的字符串welcome tomasm!

结果显示如下:

直接运行是不会用显示的,请在debug环境下运行:


程序一:最保守的方法先实现实验要求(三个循环)

assume cs:code,ds:data,es:table

data segment

     db 'welcome to masm!'

data ends

table segment

     dw 4000 dup (0)

table ends

code segment

start:   mov ax,data

     mov ds,ax

     mov ax,0b800h

     mov es,ax

     mov bx,0

     mov si,0

     mov cx,16

 

s0:  mov ax,[bx]

     mov es:[bx+720h][si],ax

     mov al,2

     mov es:[bx+721h][si],al

     inc bx

     inc si

    loop s0

 

     mov bx,0

     mov cx,16

     mov si,160

s1:  mov ax,[bx]

     mov es:[bx+720h][si],ax

     mov al,36

     mov es:[bx+721h][si],al

     inc bx

     inc si

     loop s1

 

     mov bx,0

     mov cx,16

     mov si,320

s2:  mov ax,[bx]

     mov es:[bx+720h][si],ax

     mov al,113

     mov es:[bx+721h][si],al

     inc bx

     inc si

     loop s2

 

     mov ax,4c00h

     int 21h

code ends

end start

=========================华丽的分割线1=============================

程序二:一个循环

assume cs:code

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,0720h                ;设置中间行中间列的首地址   

     mov si,0

     mov cx,16

s:   mov ax,[si]

     mov ah,2h

     mov es:[bx],ax              ;设置绿色字体

     mov ah,24h

     mov es:[bx].0a0h,ax         ;设置绿底红色

     mov ah,71h

     mov es:[bx].0a0h.0a0h,ax    ;设置白底蓝色

     inc si                      ;指向下一字符

     add bx,2                    ;指向下一显存单元

     loop s

     mov ax,4c00h

     int 21h

code ends

end start


=========================华丽的分割线2=============================

程序三:一个循环

assume cs:code,ds:data

data segment

     db 'welcome to masm!'

data ends

code segment

start:   mov ax,data

     mov ds,ax

     mov bx,0               ;ds:bx指向data字符串

     mov ax,0b800h

     mov es,ax

     mov si,0               ;es:si指向显存

     mov cx,16

s:   mov al,[bx]            ;字符赋值al

     mov ah,02h             ;绿色

     mov es:[si].720h,ax    ;写入第12行64列

     mov ah,14h             ;绿底红色

     mov es:[si].7c0h,ax    ;写入第13行64列

     mov ah,71h             ;白底蓝色

     mov es:[si].860h,ax    ;写入第14行64列

     inc bx                 ;指向下一字符

     add si,2               ;指向下一显存单元

     loop s

     mov ax,4c00h

     int 21h

code ends

end start

 



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值