X86-64编程:二维数组、字符串操作与数组比较
1. 寄存器使用情况
在编程中,不同的编译器对寄存器的使用和类型有不同的规定。以下是一些寄存器在VC++和GNU C++中的使用情况:
| 寄存器 | VC++使用 | VC++类型 | GNU C++使用 | GNU C++类型 |
| ---- | ---- | ---- | ---- | ---- |
| R10 | Volatile | - | Volatile | - |
| R11 | Volatile | - | Volatile | - |
| R12 | Non-volatile | - | Non-volatile | - |
| R13 | Non-volatile | - | Non-volatile | - |
| R14 | Non-volatile | - | Non-volatile | - |
| R15 | Non-volatile | - | Non-volatile | - |
2. 二维数组操作
C++使用连续的内存块来实现二维数组或矩阵,元素在内存中按行优先顺序排列。例如,对于矩阵 int x[3][2] ,其元素在内存中的存储顺序为 x[0][0], x[0][1], x[1][0], x[1][1], x[2][0], x[2][1] 。
要访问矩阵中的特定元素,汇编语言函数或C++编译器需要知道矩阵的起始地址、行和列索引、总列数以及每个元素的字节大小。
以下是一个示例代码,展示了如何访问
超级会员免费看
订阅专栏 解锁全文
71

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



