chenyuwei 发表于 2011-5-6 14:37:36

求汇编高手帮忙

本帖最后由 loop 于 2011-5-29 23:40 编辑

编译器:nasm
宏:

%macro Descriptor 3
      dw      %2 & 0FFFFh                                       ; 段界限1
      dw      %1 & 0FFFFh                                       ; 段基址1
      db      (%1 >> 16) & 0FFh                               ; 段基址2
      dw      ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh)   ; 属性1 + 段界限2 + 属性2
      db      (%1 >> 24) & 0FFh                               ; 段基址3
%endmacro ; 共 8 字节
想问下该如何理解这个宏的定义。

sundelian 发表于 2011-5-6 21:59:13

呃...很想帮你解答....但是还没看到这里呃...
不过C\C++中的宏定义实际上你可以看作是一个重命名,宏可以定义一个表达式,或者数据,字符串等...
就好比这样
#defineFIRST_STRING"Hello World"
这是为字符串"Hello World"定义了一个宏FIRST_STRING

以后想用这个字符串的时候,直接用这个宏就可以了....


我的答案可能不是你想要的答案,但是希望可以给你点灵感和启发....
页: [1]
查看完整版本: 求汇编高手帮忙