汇编语言中的宏:原理、应用与权衡
1. 控制台编程基础
在 Linux 的控制台编程中,有许多有趣的控制命令和技巧。例如,在 Konsole 里,特定的转义序列能改变控制台的背景颜色,像下面这个序列就能将控制台背景变为绿色:
GreenBack: db 27,“[42m“
不过,这类序列的通用性并不明确,不同的控制台(尤其是非 Linux 的 Unix 实现)可能对不同序列有不同反应。
控制台编程的一大挑战是创建全屏文本应用程序,它要能在控制台“绘制”表单,包含数据输入字段,还得允许用户在各字段间切换并输入数据。在 Linux 中,这因需要通过“原始模式”访问控制台键盘的单个按键而变得异常困难。
处理控制台的标准 Unix 方法是使用名为 ncurses 的 C 库,但它臃肿且丑陋。对于汇编程序员来说,更好的选择是专门为 NASM 汇编语言编写的 LinuxAsmTools 库,它免费且可在 http://linuxasmtools.net/ 找到。
2. 宏的基本概念
2.1 宏与过程的区别
将汇编语言程序拆分成更易管理的部分有多种方法,过程是最常见且易懂的方式,其调用和返回机制内置于 CPU 中,与特定的汇编器无关。
而现代主要的汇编器还提供了另一种管理复杂度的工具——宏。宏与过程截然不同,过程通过指令集中的 CALL 和 RET 指令实现,宏则是汇编器的技巧,不依
超级会员免费看
订阅专栏 解锁全文
3211

被折叠的 条评论
为什么被折叠?



