linux nasm程序集在terminal清除屏幕

有没有办法用nasm清除terminal窗口中的屏幕? 清除屏幕,我的意思是模拟Ctrl-L热键。 删除窗口中的所有文本。

这是可能做在nasm大会?

提前致谢,

Rileyh

Solutions Collecting From Web of "linux nasm程序集在terminal清除屏幕"

在Bash:

 echo -ne "\033[H\033[2J" 

在C:

 printf("\033[H\033[2J"); 

我如何找到字符串:

 $ strace -e trace=write clear >/dev/null write(1, "\33[H\33[2J", 7) = 7 Process 7983 detached 

看看这个NASM计划:

http://www.muppetlabs.com/~breadbox/software/tiny/snake.asm.txt

有一个有趣的部分显示如何写入转义序列的标准输出:

 %define SC_write 4 ; eax = write(ebx, ecx, edx) %define ESC 033q ; (...) refresh: mov eax, ESC | ('[' << 8) | (BOTTOMROW << 16) stosd mov eax, ';0H' | (SI << 24) stosd mov edx, edi mov edi, outbuf mov ecx, edi sub edx, ecx xor ebx, ebx lea eax, [byte ebx + SC_write] inc ebx int 0x80 

该代码不可能完全按照你想要的来执行,但是很容易修改它以输出\033[H\033[2J 。 也看看这里:

http://ascii-table.com/ansi-escape-sequences-vt-100.php

另外,如果你想要你的代码是可移植的,可以考虑使用一些在不同终端之间兼容的库,比如ncurses 。

编辑 :这是为Linux,如果你在Windows上,我会试试这个 。)