+ -
当前位置:首页 → 问答吧 → 【虎彡】3个小问题,大叔和哥哥过来看下

【虎彡】3个小问题,大叔和哥哥过来看下

时间:2010-12-14

来源:互联网

1是关于LABEL的问题,一直不太懂 书上说,该语句定义一个指定的符号名,该符号名的段地址和偏移与下面紧跟存储单元的相应属性相同,但该符号类型是新指定的。。。。 下面紧跟着的存储单元是哪?
  A DB 1,2,3,4,5
  B label word
  C DB 2,3,4,5,6
B是A的新类型还是C的?


2 如果不知道一片缓冲区里存放的是正数还是负数 如果做乘除法? 如何比较? 当有符号的比较?还是必须先确定每一个值的正负?


3关于宏定义中的符号%的含义
 书上的概念和例子都没看懂 求解释和例子~!


 

作者: znxllyuan   发布时间: 2010-12-14

1 是C的。它与C有相同的地址(段地址和偏移地址),但类型为Word,而C为type.

2 这个问题好像有点不对?“不知道一片缓冲区里存放的是正数还是负数”,那它们就是有符号数了,做乘除法用imul和idiv,比较后用条件转移指令(jg,jle)。不需要你去确定它的符号。

3 时间上不用有点忘了,你试一下是不是这样的:用%把参数中一个可变的量与宏中不变的符号连接起来。例如

PUXX MACRO K
  PUSH K%X ;这里K是参数,X是不变的符号
ENDM

调用
PUXX A
PUXX B
就被展成
PUSH AX
PUSH BX

相当于把宏中的“K”分别用实参A和B代替,而%后的X不变。



作者: shzhfu   发布时间: 2010-12-14