1+1的01是什么
2014-04-01 16:00
190 查看
CPU是由01的指令组成的,那最简单的1+1 的在CPU中指令是什么呢,
1.准备工具
在OSX 平台,自带的版本是 0.98.40 太老了,从官网下载最新2.11.02 版本 http://www.nasm.us/pub/nasm/releasebuilds/2.11.02/
2.开始汇编
新建 hello64.s 文件
nop
mov rax, 1
mov rbx, 1
add rax,rbx
mov rdi,rax
nop
汇编 ,平台是macho64,-Ox:最大程序地优化
./nasm -Ox -f macho64 -o hello64.o hello64.s
反汇编,因为是64为所以加上 -b 64
./ndisasm -b 64 hello64.o
结果是
000000B8 90 nop
000000B9 B801000000 mov eax,0x1
000000BE BB01000000 mov ebx,0x1
000000C3 4801D8 add rax,rbx
000000C6 4889C7 mov rdi,rax
000000C9 90 nop
1+1 就是 B801000000BB010000004801D8 这么一串指令,这个是16进制的,
换算成二进制就是
1011100000000001000000000000000000000000
1011101100000001000000000000000000000000
10010000000000111011000
1.准备工具
在OSX 平台,自带的版本是 0.98.40 太老了,从官网下载最新2.11.02 版本 http://www.nasm.us/pub/nasm/releasebuilds/2.11.02/
2.开始汇编
新建 hello64.s 文件
nop
mov rax, 1
mov rbx, 1
add rax,rbx
mov rdi,rax
nop
汇编 ,平台是macho64,-Ox:最大程序地优化
./nasm -Ox -f macho64 -o hello64.o hello64.s
反汇编,因为是64为所以加上 -b 64
./ndisasm -b 64 hello64.o
结果是
000000B8 90 nop
000000B9 B801000000 mov eax,0x1
000000BE BB01000000 mov ebx,0x1
000000C3 4801D8 add rax,rbx
000000C6 4889C7 mov rdi,rax
000000C9 90 nop
1+1 就是 B801000000BB010000004801D8 这么一串指令,这个是16进制的,
换算成二进制就是
1011100000000001000000000000000000000000
1011101100000001000000000000000000000000
10010000000000111011000
相关文章推荐
- iOS_01_什么是ios
- Jenkins入门系列之——01第一章 Jenkins是什么?
- 01_什么是Elasticsearch
- Lesson03_01 什么是CSS和CSS的设置方式
- 01第一章 Jenkins是什么?
- 预备作业01:你期望的师生关系是什么?(修改)
- 线性代数的本质与几何意义 01. 向量是什么?(3blue1brown 咪博士 图文注解版)
- 《C#精彩实例教程》小组阅读01 – MSDN是什么?
- Java千百问_01基本概念(001)_什么是Java
- Android Testing学习01 介绍 测试测什么 测试的类型
- Jenkins入门系列之——01第一章 Jenkins是什么?
- 01_什么是Elasticsearch
- [02-01]如何学习新技术,比如java,学什么
- 线性代数的本质与几何意义 01. 向量是什么?(3blue1brown 咪博士 图文注解版)
- Jenkins入门系列之——01第一章 Jenkins是什么?
- Jenkins入门系列之——01第一章 Jenkins是什么?
- Shibboleth简介01——什么是Shibboleth?
- JAVA设计模式是个什么玩意儿_01_工厂方法模式
- 01 什么是webgl
- 【01】什么是 APP?移动 APP 有几种类型?