易语言资源网 - 做最全的易语言资源下载社区
【周六更新】【2021开源大赛(第六届)】全部参赛作品信息 精易论坛授权登录

汇编倒转字节集的一些写法   [复制链接]

    2023-01-30 08:45:28
    模块控件源码
    易语言资源网
    193 次浏览
    来源链接

一种常见的写法就是用 push pop 来做:

微信截图_20230130084314.png

但栈空间通常是有限的,因此处理不了太长的字节集。

如果需要处理很长的字节集,就需要使用别的方法,比如:

微信截图_20230130084417.png

它对应下面的伪代码:

p = addressOf(bytes);
q = p + bytes.length - 1;
len = bytes.length / 2;
while (len--) 
{
    swap(p++, q--); 
}

其中 bytes 表示字节集变量,其内部格式类似于:

struct _Bytes {
    int num;
    int length;
    char buff[length];
};

看到这里,聪明的你可能已经发现了,len 这个变量实际上是可以取消掉的:

p = addressOf(bytes);
q = p + bytes.length - 1;
while (p < q)
{
    swap(p++, q--);
}

把它写成汇编后,就得到了如下的代码:

微信截图_20230130084457.png



点我下载 (已有 6 次下载)

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
汇编倒序字节集.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
通用对象支持库 2.0 {A068799B-7551-46b9-8CA8-EEF8357AFEA4}
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0


[错误报告]   上一篇:获取VXkey     下一篇:逍遥模拟器中控例子...