用8086汇编语言编写一个程序 在屏幕上显示一个表格,表格边框,背景等颜色自定
时间: 2024-03-12 12:47:07 浏览: 37
下面是一个简单的示例程序,它在屏幕上显示一个带有边框和背景颜色的表格,使用的是汇编语言8086:
```
; 显示一个带边框和背景颜色的表格
.model small
.stack 100h
; 定义颜色
black equ 0
white equ 7
blue equ 1
green equ 2
.data
row db 5 ; 表格行数
col db 5 ; 表格列数
cell_width db 10 ; 单元格宽度
cell_height db 2 ; 单元格高度
.code
main proc
mov ax, @data
mov ds, ax
; 设置颜色
mov ah, 0bh
mov bh, 0
mov bl, blue
int 10h
; 显示表格
mov cx, row
mov dx, col
mov si, 0
mov di, 0
; 绘制表格的顶部边框
mov ah, 9h
mov al, 196
mov bl, white
top_border:
push cx
mov cx, cell_width
int 10h
pop cx
inc si
cmp si, dx
jne top_border
; 绘制表格的左边框和单元格
mov ah, 9h
mov al, 179
mov bl, white
mov cx, row
mov dx, col
mov si, 0
mov di, 0
left_border:
push dx
mov dx, cell_height
int 10h
pop dx
mov ah, 9h
mov al, 179
mov bl, white
push cx
mov cx, cell_width - 1
int 10h
pop cx
inc si
cmp si, dx
jne left_border
; 绘制表格的底部边框
mov ah, 9h
mov al, 196
mov bl, white
mov cx, row
mov dx, cell_width
mov si, 0
mov di, cell_height * (col - 1)
bottom_border:
push cx
mov cx, cell_width
int 10h
pop cx
dec di
cmp di, 0
jne bottom_border
; 设置颜色
mov ah, 0bh
mov bh, 0
mov bl, green
int 10h
; 在表格中间显示文本
mov ah, 9h
mov al, 'X'
mov bh, 0
mov bl, white
mov cx, cell_height
mov dx, cell_width
mov si, 0
mov di, 0
middle_text:
push dx
mov dx, cell_height / 2
int 10h
pop dx
push cx
mov cx, cell_width / 2 - 1
int 10h
pop cx
inc si
cmp si, row * col
jne middle_text
; 退出程序
mov ah, 4ch
int 21h
main endp
end main
```
代码解析:
1. `black equ 0`、`white equ 7`、`blue equ 1`、`green equ 2` 定义颜色常量。
2. `row db 5`、`col db 5`、`cell_width db 10`、`cell_height db 2` 定义表格的行数、列数、单元格宽度和高度。
3. `mov ah, 0bh`、`mov bh, 0`、`mov bl, blue` 设置颜色。
4. 绘制表格的顶部边框:`mov ah, 9h`、`mov al, 196`、`mov bl, white`。
5. 绘制表格的左边框和单元格:`mov ah, 9h`、`mov al, 179`、`mov bl, white`。
6. 绘制表格的底部边框:`mov ah, 9h`、`mov al, 196`、`mov bl, white`。
7. `mov ah, 0bh`、`mov bh, 0`、`mov bl, green` 设置颜色。
8. 在表格中间显示文本:`mov ah, 9h`、`mov al, 'X'`、`mov bh, 0`、`mov bl, white`。
9. `mov ah, 4ch`、`int 21h` 退出程序。
以上代码将在屏幕上显示一个包括 5 行,5 列的表格,每个单元格宽度为 10,高度为 2,表格边框颜色为白色,背景颜色为蓝色,表格中间的文本为“X”,文本颜色为白色,背景颜色为绿色。