请你用8086汇编语言编写代码,输出每隔五行一种颜色的,七种彩虹颜色条
时间: 2024-02-22 22:56:30 浏览: 13
以下是8086汇编语言的代码,可以输出每隔五行一种颜色的,七种彩虹颜色条。
```
.model small
.stack 100h
.data
color1 db 0Ch ; 红色
color2 db 0Eh ; 黄色
color3 db 0Ah ; 绿色
color4 db 09h ; 蓝色
color5 db 0Bh ; 紫色
color6 db 0Dh ; 粉色
color7 db 0Fh ; 白色
.code
main proc
mov ax, @data
mov ds, ax
mov bx, 0 ; 计数器清零
mov ah, 06h ; 清屏
mov al, 0
mov bh, 0Fh
mov cx, 2000
int 10h
mov ah, 02h ; 设置光标位置
mov bh, 0
mov dh, 0
mov dl, 0
int 10h
mov si, offset color1 ; 设置初始颜色
mov ah, 09h
mov al, 20h
mov bh, 0
mov bl, byte ptr [si]
mov cx, 4000
int 10h
mov ah, 02h ; 设置光标位置
mov bh, 0
mov dh, 0
mov dl, 0
int 10h
mov bx, 0 ; 计数器清零
mov si, offset color1 ; 设置初始颜色
mov ah, 09h
mov al, 20h
mov bh, 0
mov bl, byte ptr [si]
; 循环输出颜色条
color_loop:
cmp bx, 5 ; 每隔五行更换颜色
jne color_continue
inc si
cmp si, offset color7+1
je color_end
mov bl, byte ptr [si]
mov bx, 0
color_continue:
inc bx
mov ah, 09h
mov al, 20h
mov bh, 0
mov bl, byte ptr [si]
mov cx, 5
color_repeat:
int 10h
loop color_repeat
jmp color_loop
color_end:
mov ah, 4Ch ; 退出程序
int 21h
main endp
end main
```
这个程序使用了BIOS的中断函数,包括06h(清屏)、02h(设置光标位置)和09h(显示字符和颜色)。在程序开始时,先清屏,然后设置光标位置和初始颜色,接着进入循环,每隔五行更换一种颜色,输出五行彩虹颜色条,直到输出完所有颜色为止。最后,程序退出。