NASM汇编实现彩色输出
2016-04-30 19:42
246 查看
先上代码,实现控制台输出“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 | 消隐 |
http://www.linuxidc.com/Linux/2009-03/18792.htm