【语言-汇编】 判断处理器 (操作系统的)位数
2016-05-26 11:05
357 查看
//32位系统示例 依次左移 //10000000000000000000000000000001 80000001 -1 //10000000000000000000000000000010 80000002 -2 //10000000000000000000000000000100 80000004 -4 //10000000000000000000000000001000 80000008 -8 //10000000000000000000000000010000 80000010 -16 //10000000000000000000000000100000 80000020 -32 //10000000000000000000000001000000 80000040 -64 //10000000000000000000000010000000 80000080 -128 //10000000000000000000000100000000 80000100 -256 //10000000000000000000001000000000 80000200 -512 //10000000000000000000010000000000 80000400 -1024 //10000000000000000000100000000000 80000800 -2048 //10000000000000000001000000000000 80001000 -4096 //10000000000000000010000000000000 80002000 -8192 //10000000000000000100000000000000 80004000 -16384 //10000000000000001000000000000000 80008000 -32768 //10000000000000010000000000000000 80010000 -65536 //10000000000000100000000000000000 80020000 -131072 //10000000000001000000000000000000 80040000 -262144 //10000000000010000000000000000000 80080000 -524288 //10000000000100000000000000000000 80100000 -1048576 //10000000001000000000000000000000 80200000 -2097152 //10000000010000000000000000000000 80400000 -4194304 //10000000100000000000000000000000 80800000 -8388608 //10000001000000000000000000000000 81000000 -16777216 //10000010000000000000000000000000 82000000 -33554432 //10000100000000000000000000000000 84000000 -67108864 //10001000000000000000000000000000 88000000 -134217728 //10010000000000000000000000000000 90000000 -268435456 //10100000000000000000000000000000 A0000000 -536870912 //11000000000000000000000000000000 C0000000 -1073741824 //10000000000000000000000000000000 80000000 -2147483648 //00000000000000000000000000000000 00000000 0 int GetSystemBit() { int i=0; int x=0; double a=0; __asm //将-1 连续左移直到为 0 { mov eax,-1; //将-1赋值给eax start: cmp eax,0; //判断 eax - 0 ?= 0 je end; //以上两个值相等则跳转end shl eax,1; //左移一位 mov ecx,i; //将i赋值给ecx inc ecx; //将ecx增加1 mov i,ecx; //将ecx赋值给i jmp start; //跳转到 start end: mov x,eax; } CString str; str.Format(_T("\n%d %d Bits System\n"),i,x); OutputDebugString(str); return i; }
相关文章推荐
- 异步与并行~大话目录
- Fragment的使用
- bss, data, text ...
- Idea 配置修改
- 学生和教育人士可免费申请 Github 私有仓库
- Qt 4.8.4中文显示问题
- Java编程思想(第四版)笔记(二)
- Byte类型与各种基础类型之间的相互转化函数总结
- VS2010 C++ 串口编程 错误error C2664: “CreateFileW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”
- android studio 编译错误解决
- mvc 路由
- Web版 扫雷 JS实现
- ecshop为商品列表添加销量排序功能
- 判断单链表是否有环以及碰撞点连接点
- 大数据分表
- HTML5 本地裁剪图片并上传至服务器 canvas图片上传 canvas图片裁剪
- 正则表达式快速入门
- 冬至论名(2008.12.21)
- Android 自定义View (一)
- 课堂作业------找水王(2)