Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 一些简单的nasm问题,我可以';无法理解%n和选择器_Assembly_Nasm - Fatal编程技术网

Assembly 一些简单的nasm问题,我可以';无法理解%n和选择器

Assembly 一些简单的nasm问题,我可以';无法理解%n和选择器,assembly,nasm,Assembly,Nasm,一, 我无法理解代码中%的含义 二, SelectorVideo和SelectorCode32的含义和结构是什么 无法理解代码中%的含义 答案是: 预处理器指令都以%符号开头 例如,%macro告诉预处理器您正在启动宏定义 SelectorVideo和SelectorCode32的含义和结构是什么 SelectorCode32 eq LABEL\u DESC\u CODE32-LABEL\u GDT只需创建一个equale(有点像常数),并给它一个值,该值等于从LABEL\u GDT到LABE

一,

我无法理解代码中%的含义

二,

SelectorVideo和SelectorCode32的含义和结构是什么

无法理解代码中%的含义

答案是:

预处理器指令都以%符号开头

例如,
%macro
告诉预处理器您正在启动宏定义


SelectorVideo和SelectorCode32的含义和结构是什么


SelectorCode32 eq LABEL\u DESC\u CODE32-LABEL\u GDT
只需创建一个equale(有点像常数),并给它一个值,该值等于从
LABEL\u GDT
LABEL\u DESC\u CODE32

的距离,但是,“LABEL\u GDT到LABEL\u DESC\u CODE32的距离”是多少?你能说得详细一点吗?我所说的“距离”是指两个标签地址之间的差异。你确定这就是差异吗,,SelectorCode32和SelectorVideo只是数字?标签只是一种命名地址的便捷方式,地址就是数字。在NASM代码中,必须使用方括号(
[]
)取消对地址处数据的引用。但是,如果您想验证这一点,您可以通过打印
SelectorVideo
SelectorCode32
的值来进行验证。谢谢您,Michael,您能看一下“commet”吗
%macro Descriptor 3
dw  %2 & 0FFFFh             
dw  %1 & 0FFFFh             
db  (%1 >> 16) & 0FFh           
dw  ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh) 
db  (%1 >> 24) & 0FFh           
%endmacro ; 共 8 字节
DA_32       EQU 4000h
DA_C        EQU 98h
DA_DRW      EQU 92h

[SECTION .gdt]
LABEL_GDT:         Descriptor       0,                0, 0          
LABEL_DESC_CODE32: Descriptor       0, SegCode32Len - 1, DA_C + DA_32
LABEL_DESC_VIDEO:  Descriptor 0B8000h,           0ffffh, DA_DRW     


SelectorCode32      equ LABEL_DESC_CODE32   - LABEL_GDT
SelectorVideo       equ LABEL_DESC_VIDEO    - LABEL_GDT