简单用汇编语言以子程序在屏幕中间分别显示绿色、绿底红色、白底蓝色的‘welcome to masm’。
时间: 2023-12-31 21:05:51 浏览: 78
汇编语言学习开发,调试用到的小工具,包括汇编程序 masm.exe, tasm.exe ; 链接程序 link.exe 等
好的,这里是一个简单的汇编程序,使用了子程序在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 "welcome to masm"。
```
.model small
.stack 100h
.data
message db 'welcome to masm$'
color1 db 02h ; 绿色
color2 db 04h ; 红色
color3 db 01h ; 蓝色
.code
main proc
mov ax, @data
mov ds, ax
; 显示绿色字符串
call show_message_color1
; 显示绿底红色字符串
call show_message_color2
; 显示白底蓝色字符串
call show_message_color3
mov ah, 4ch
int 21h
main endp
; 显示绿色字符串的子程序
show_message_color1 proc
mov ah, 0ch
mov bh, 0
mov bl, color1
mov cx, 14
mov dx, 40
mov si, offset message
int 10h
ret
show_message_color1 endp
; 显示绿底红色字符串的子程序
show_message_color2 proc
mov ah, 0ch
mov bh, 0
mov bl, color1 + (color2 * 16)
mov cx, 14
mov dx, 40
mov si, offset message
int 10h
ret
show_message_color2 endp
; 显示白底蓝色字符串的子程序
show_message_color3 proc
mov ah, 0ch
mov bh, 0
mov bl, 15 + (color3 * 16)
mov cx, 14
mov dx, 40
mov si, offset message
int 10h
ret
show_message_color3 endp
end main
```
在上面的程序中,我们定义了三个子程序 `show_message_color1`、`show_message_color2` 和 `show_message_color3`,用于在屏幕中间分别显示带有不同颜色的字符串 "welcome to masm"。这些子程序使用了 BIOS 中断 10h 来显示字符串,并且设置了不同的颜色。
注意,在调用子程序时,我们使用了 `call` 指令。`call` 指令会将当前的程序计数器(PC)压入堆栈中,并跳转到指定的子程序中执行。在子程序执行完毕后,使用 `ret` 指令返回到调用它的位置,并将堆栈中的值弹出到 PC 中,使程序继续执行。
阅读全文