编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 'welcome to masm!'...
时间: 2024-03-01 14:50:06 浏览: 14
以下是使用 x86 汇编语言编写的代码,可以在 DOS 环境下运行:
```
.model small
.stack 100h
.data
msg1 db 'welcome to masm!', 13, 10, '$'
msg2 db 'welcome to masm!', 13, 10, '$'
msg3 db 'welcome to masm!', 13, 10, '$'
.code
mov ax, @data
mov ds, ax
; 显示绿色字符串
mov ah, 9
mov dx, offset msg1
mov bl, 2
int 21h
; 显示绿底红色字符串
mov ah, 9
mov dx, offset msg2
mov bl, 2 ; 绿底
int 21h
mov ah, 9
mov dx, offset msg2
mov bl, 4 ; 红色
int 21h
; 显示白底蓝色字符串
mov ah, 9
mov dx, offset msg3
mov bl, 1 ; 白底
int 21h
mov ah, 9
mov dx, offset msg3
mov bl, 9 ; 蓝色
int 21h
mov ah, 4ch
int 21h
end
```
解释一下代码:
- 第 1 行定义了程序模型为 small。
- 第 2 行分配了一个 100 字节的栈空间。
- 第 3-5 行定义了三个字符串,分别为 msg1、msg2 和 msg3,每个字符串后面加上了回车换行符和字符串结束符。
- 第 6-16 行是程序代码部分。
- 第 7-8 行将数据段地址存入 AX 寄存器,再将 AX 寄存器中的值存入 DS 寄存器,以便访问数据段中的变量。
- 第 11-14 行使用 DOS 中断 21h 的 9 号功能(显示字符串)显示绿色字符串。其中 AH 寄存器中存放 9,DX 寄存器中存放字符串的偏移地址,BL 寄存器中存放显示属性,这里使用 2 表示绿色。
- 第 17-20 行显示绿底红色字符串,使用显示属性 2 表示绿色,使用显示属性 4 表示红色。
- 第 23-26 行显示白底蓝色字符串,使用显示属性 1 表示白色,使用显示属性 9 表示蓝色。
- 第 28-29 行使用 DOS 中断 21h 的 4ch 功能结束程序。