minix代码中conv2()函数的作用

本文详细介绍了conv2和conv4两个函数的功能与实现原理,这两个函数主要用于根据不同的机器类型进行16位和32位数据的字节序转换。通过conv2和conv4函数,可以在8086和68000等不同架构的处理器间正确地交换数据。
conv2()函数根据机器类型交换大小端数据。
PUBLIC unsigned conv2(norm, w)
int norm;   /* TRUE if no swap, FALSE for byte swap */
int w;    /* promotion of 16-bit word to be swapped */
{
/* Possibly swap a 16-bit word between 8086 and 68000 byte order. */
  if (norm) return( (unsigned) w & 0xFFFF);
  return( ((w&BYTE) << 8) | ( (w>>8) & BYTE));
}

 

另有conv4()函数,有类似功能,定义为

 21360    _PROTOTYPE( unsigned conv2, (int norm, int w)                           );
 21361    _PROTOTYPE( long conv4, (int norm, long x)                              );

有宏定义,标示需不需要交换

 21056    #define BYTE_SWAP          0    /* tells conv2/conv4 to swap bytes */

 

 
 

转载于:https://www.cnblogs.com/jun14/archive/2012/12/08/2808797.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值