0
点赞
收藏
分享

微信扫一扫

1613_PC汇编语言_位操作


​​GreyZhang/g_unix: some basic learning about unix operating system. (github.com)​​

         这一次看一下位操作的章节。

1613_PC汇编语言_位操作_OS

         如果是逻辑位操作其实不需要考虑大小端。

1613_PC汇编语言_位操作_UNIX_02

1. 移位操作在快速乘除法中经常用到。

2. 这里提到了一个算是移位,其实跟前面的基础移位是相同的。

1613_PC汇编语言_位操作_OS_03

1. 循环移位,这个大学的时候也是接触使用过的。但是到了工作之中用的很少了。

2. 下面这个算法用来实现计算二进制中有多少个1,countingbits。

1613_PC汇编语言_位操作_OS_04

         关于位操作有按照位执行的与或非以及亦或操作。

1613_PC汇编语言_位操作_linux_05

         这里列出了很多位操作的例子,而这些例子在嵌入式中很常见。我觉得,类似的操作直接用高级语言编写可能得到的汇编不会有什么效率损失,因为操作映射太直接了。

1613_PC汇编语言_位操作_OS_06

         这里接下来就提到了高级语言中的位操作,这里提到的是C语言。而这部分功能,我在工作的多年中的确是非常频繁使用过。

1613_PC汇编语言_位操作_JOS_07

         在使用应用案例中提到了UNIX,或者说POSIX中文件权限属性的操作。这个操作的实现,使用的其实就是位操作。

1613_PC汇编语言_位操作_linux_08

1. 大小端判断程序,比较简单。我考虑不出来什么时候我会用到,但是倒是也可以收集到我的工具箱中,这样的辅助功能对于写出通用软件来说比较有帮助。

2. TCP/IP的数据包结构中就包含有按照大端存储的信息,如果遇到类似的处理,需要考虑数据转换。

1613_PC汇编语言_位操作_linux_09

​​GreyZhang/c_units: A small piece of code which can be reuse anywhere, I call it a unit. This is a collection of unit in C language! Ok, yes, it would be my toolbox. (github.com)​​

         看起来,类似的知识已经越来越脱离PC的汇编主题了。后面的阅读速度应该加快推进了。

举报

相关推荐

0 条评论