社区
汇编语言
帖子详情
【高分】汇编语言如何获取寄存器连续1的位数
hucailai
2019-02-03 10:59:19
例如寄存器 EAX:
从两个方向,高位和低位
MOV EAX , 1111000100011B
从高位得到4,从低位得到2
求高手支招,考虑性能最优,400分送上。
...全文
163
9
打赏
收藏
【高分】汇编语言如何获取寄存器连续1的位数
例如寄存器 EAX: 从两个方向,高位和低位 MOV EAX , 1111000100011B 从高位得到4,从低位得到2 求高手支招,考虑性能最优,400分送上。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hucailai
2019-02-03
打赏
举报
回复
400分送上,见着有份,100%结贴。
hucailai
2019-02-03
打赏
举报
回复
结贴了,多谢
日立奔腾浪潮微软松下联想
2019-02-03
打赏
举报
回复
引用 7 楼 hucailai 的回复:
左起第一个0位置,那前面的不就正好是全部连续的1吗?
对你的例子:
MOV EAX , 1111000100011B
数据实际是 0000 0000 0000 0000 0001 1110 0010 0011
hucailai
2019-02-03
打赏
举报
回复
左起第一个0位置,那前面的不就正好是全部连续的1吗?
日立奔腾浪潮微软松下联想
2019-02-03
打赏
举报
回复
#2已经是很高效的了,除非有专用指令(popcnt是求1的数量,但不是连续的1),否则不可能几条指令算出来
日立奔腾浪潮微软松下联想
2019-02-03
打赏
举报
回复
不可以,你这样是取左起第一个0的位置
hucailai
2019-02-03
打赏
举报
回复
是不是可以这样 XOR EAX,0xFFFFFFFF ;异或 BSR EAX,EAX ;位扫描 两条指令搞定。
hucailai
2019-02-03
打赏
举报
回复
用到了循环感觉效率不高,还有更好的吗?
日立奔腾浪潮微软松下联想
2019-02-03
打赏
举报
回复
; 求最长连续位1
; input: unsigned integer in eax
; output: result in eax
CC1 proc
mov ecx, eax
mov edx, eax
xor eax, eax
@@loop:
jecxz @@exit
shl ecx, 1
and edx, ecx
inc eax
mov ecx, edx
jmp @@loop
@@exit:
ret
CC1 endp
计组
高分
笔记:【04】指令系统 「指令格式与分类 | CISC、RISC | 直接寻址 | 间接寻址 |
寄存器
寻址 | 隐式寻址 | 立即寻址| 基址寻址 | 变址寻址 | 相对寻址 | 堆栈寻址」
1. 指令格式 1.1 指令的基本概念 1.2 指令的分类 1.2.1 按地址码(操作数)长度/数目分类 1.2.2 按指令的长度分类 1.2.3 按操作码长度分类 1.2.4 按操作类型分类 1.3 扩展操作码指令 1.3.1 扩展操作码的组成 1.3.2 扩展操作码的设计 2. 指令的寻址方式 2.1 指令寻址和数据寻址 2.1.1 指令寻址(通过PC) 2.1.2 数据寻址 2.1.2.1 直接寻址 2.1.2.2 间接寻址 2.1.2.3
寄存器
寻址 2.1.2.4
寄存器
间接寻址 2.1.2.5
计算机组成原理
计算机系统有硬件和软件两部分组成,软件又可分为系统软件和应用软件 硬件:看得见摸得着的电子元器件,如主机,外部设备 软件:人们事先编制的具有特殊功能的程序 程序通常存放在计算机主存储器或者辅存里 直接执行机器语言的程序:实际机器M(机器语言机器) 符号式的程序设计语言:
汇编语言
(
汇编语言
机器称为虚拟机器,实际不存在,使人们感受到存在的具有翻译功能的机器,先将
汇编语言
翻译成机器语言,
408-机组一些小知识点
考研408-机组
计算机组成原理(王道精讲课 + 天勤
高分
笔记) note
计算机组成原理第一章:概述1.计算机的发展2.计算机硬件组成2.1 存储器的基本组成2.2 运算器的基本组成2.3 控制器的基本组成2.4 计算机工作过程举例3.计算机软件3.1 系统软件3.2 应用软件3.3 三个级别的语言4.软件与硬件的关系5.计算机系统的层次结构6.计算机的性能指标6.1 机器字长6.2 数据通路带宽6.3 主存容量:6.4 运算速度6.5 几个专业术语第四章:指令系统1.指令格式1.1 指令的分类1.2 扩展操作码指令格式2.指令的寻址方式2.1指令寻址2.2 数据寻址 第一章:概
实战篇3:一切皆对象,文件目录体系(节点树)
AOS与阿里名称冲突,现改为OACS;面向对象
汇编语言
OASM(Object assembly language),又带一点点C风格,改名为OACS、即是带一点C风格的面向对象
汇编语言
系统(Object assembly language C system)。一切皆对象,相比unix/linux的一切皆文件,会显得范围更广一些;许多内核对象,如内存对象、CPU对象、IPC对象、线程对象、等等,是没有文件i节点的。c语言功能也强大,但个人认为、想用好并不容易;这段时间,看了不少嵌入式操作系统及相关的源代码;给
汇编语言
21,459
社区成员
41,602
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章