先上代码,实现控制台输出“Hello World”。
SECTION .DATA
color_red: db 1Bh, '[31;1m', 0
.len equ $ - color_red
color_blue: db 1Bh, '[34;1m', 0
.len equ $ - color_blue
color_default: db 1Bh, '[37;0m', 0
.len equ $ - color_default
message db 'Hello World!!!', 0Ah
SECTION .text
global _start
_start:
mov eax, 4
mov ebx, 1
mov ecx, color_blue
mov edx, color_blue.len
int 80h
mov ecx, message
mov edx, 14
mov eax, 4
mov ebx, 1
int 80h
mov ebx, 0
mov eax, 1
int 80h
在DATA段定义了三种颜色,分别为蓝色、红色及系统默认颜色(与控制台命令颜色一致)。其中,’[31;1m’限定样式,31代表颜色,1m中的‘1’代表样式,颜色对照如下:
数值 | 颜色 |
---|---|
30 | 黑 |
31 | 红 |
32 | 绿 |
33 | 黄 |
34 | 蓝色 |
35 | 紫色 |
36 | 深绿 |
37 | 白色 |
样式对应如下:
数值 | 样式 |
---|---|
0m | 关闭所有属性 |
1m | 高亮 |
4m | 下划线 |
5m | 闪烁 |
7m | 反显 |
8m | 消隐 |
有关Linux终端下颜色的输出可参考
http://www.linuxidc.com/Linux/2009-03/18792.htm