在实地址模式下:
<table>
<tr class="google-visualization-table-tr-even">
<td class="google-visualization-table-td" data-tag="TC-206">TC-206</td>
<td class="google-visualization-table-td" data-tag="Customer logs in">Customer logs in</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Pass">Pass</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Pass">Pass</td></tr>
<tr class="google-visualization-table-tr-odd">
<td class="google-visualization-table-td" data-tag="TC-207">TC-207</td>
<td class="google-visualization-table-td" data-tag="Customer signs out">Customer signs out</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Fail">Fail</td>
<td class="google-visualization-table-td" data-tag="Pass">Pass</td>
<td class="google-visualization-table-td" data-tag="Pass">Pass</td></tr>
</table>
在保护模式下:
mov esi, OFFSET var ;esi 32 bit
请帮助我阐明我的概念,我是初学者。
答案 0 :(得分:1)
constexpr size_t s = 10;
std::vector<int> v1(s, 1);
std::vector<int> v2(s, 1);
(采用32位保护模式代码)可能会将地址截断为16位,从而为地址提供低16位。
MOV si, OFFSET arr
在16位实模式下,我希望偏移量可以零扩展到32位。
这就是NASM所做的,仅针对文件中的mov esi, OFFSET var
。
您得到foo: mov esi, foo
。
答案 1 :(得分:0)
在MASM和TASM(以及可能所有其他支持OFFSET关键字的其他x86汇编器)中,它给出其所属段中某物的偏移量(惊奇!)。
逻辑地址基本上是一个远指针,一对偏移量和一个段选择器。