用汇编语言编写一个程序,要求如下,在屏幕中央显示三行背景色和字体色都不同的字符串“Welcome to masm!",屏幕的其他位置用#填满,要求使用子程序
时间: 2024-02-22 11:56:28 浏览: 96
好的,下面是用汇编语言编写的程序,满足您的要求:
```
.model small
.stack 100h
.data
welcome1 db 'Welcome to masm!', 0Ah, 0Dh, '$'
welcome2 db 'Welcome to masm!', 0Ah, 0Dh, '$'
welcome3 db 'Welcome to masm!', 0Ah, 0Dh, '$'
line1 db '**************************************************',0Ah,0Dh,'$'
line2 db '* *',0Ah,0Dh,'$'
.code
main proc
mov ax, @data
mov ds, ax
;设置屏幕颜色为黑底白字
mov ah, 0Ch
mov al, 0
mov bh, 0
mov cx, 0
mov dx, 184Fh
int 10h
;显示欢迎语句
call displayWelcome
;退出程序
mov ah, 4Ch
int 21h
main endp
;显示欢迎语句
displayWelcome proc
push ax
push bx
push cx
push dx
;清屏
call clearScreen
;设置颜色1
mov ah, 09h
mov al, 06h
mov cx, 39
mov bh, 0
mov bl, 00001111b
mov dx, offset line1
int 10h
;设置颜色2
mov ah, 09h
mov al, 06h
mov cx, 1
mov bh, 0
mov bl, 00001010b
mov dx, offset line2
int 10h
;设置颜色3
mov ah, 09h
mov al, 06h
mov cx, 1
mov bh, 0
mov bl, 00000101b
mov dx, offset line2+44
int 10h
;显示欢迎语句
mov ah, 09h
mov al, 06h
mov bh, 0
mov bl, 00001111b
mov dx, offset welcome1
int 21h
mov ah, 09h
mov al, 06h
mov bh, 0
mov bl, 00001010b
mov dx, offset welcome2
int 21h
mov ah, 09h
mov al, 06h
mov bh, 0
mov bl, 00000101b
mov dx, offset welcome3
int 21h
pop dx
pop cx
pop bx
pop ax
ret
displayWelcome endp
;清屏
clearScreen proc
push ax
push bx
push cx
push dx
mov ah, 06h
mov al, 0
mov bh, 07h
mov cx, 0
mov dx, 184Fh
int 10h
pop dx
pop cx
pop bx
pop ax
ret
clearScreen endp
end
```
程序的思路是先清屏,然后设置屏幕颜色为黑底白字,接着分别设置三行字符串的背景色和字体色,最后在屏幕中央显示三行不同颜色的字符串。
您可以使用MASM汇编器将程序保存为.asm文件,并使用汇编器生成可执行文件。
阅读全文