Emu8086 集源代码编辑器,汇编/反汇编工具以及可以运行
debug 的模拟器(虚拟机器)于一身,它优于一般编译器的地方在
于提供了一个虚拟的 80x86 环境,拥有自己一套独立的“硬件”,可
以完成一些纯软件编译器无法完成的功能例如 Led 显示,交通灯,
步进电机等等,而且动态调试(DEBUG)时非常方便。
简单的例子:
安装完成后选择
菜单栏中的文件
examples
stepper motor
在编辑框出现了相应的源码。点击 compile 编译选择一个文件保存
保存完之后会弹出一个对话框
点击 run 按钮则程序开始运行
调试时主控界面如下:
再次点击 run 可以停止运行
单击 reload 可以从头开始执行程序
单击 single step 可以单步调试。
单击 step back 可以返回到上一条指令(这个功能也是一般调试器没
有的)。
界面左边是寄存器栏,这里可以动态的观察每一步的执行结果
点击主控界面下面的 screen 可以显示模拟输出窗口
单击 source 可以查看源码窗口
Reset 相当于上面的 reload 键。
单击 aux 会出现一个菜单选择第一项 memory 可以观察程序内存区数
值的变化。
选择 stop on condition 可以设置条件断点:
上面的设定当 ax 的值是 0x0006 是断下来
单击 run 按钮可以看到断下来的时候 ax 值正好等于 6
单击 vars 可以查看运行过程中变量的变化。
Debug 可以更详细的显示每一步的调试结果
通过 Stack(堆栈)可以观察函数调用的过程
Flags 显示标志寄存器的值。如果刚刚执行的那一条指令修改了哪个
标志位的值则以红色显示。
可以到这个网址去下载:
http://www.newhua.com/soft/16859.htm
目前网上很多人找这个软件的破解版。。其实根本不用破解。。
只要在用户名一栏输入任意的字符
注册码的前三位输入“112”就可以绕过注册认证了。。
至于为什么我就不多说了有兴趣的可以看一下我在看雪论坛发表的
一篇文章:http://bbs.pediy.com/showthread.php?t=119741
下面是在百度文库下载的一篇基础教程希望能对大家有所帮助。。。。
如何运行?
1.在开始菜单选在它的图标,或者直接运行 Emu8086.EXE
2.在"FILE"菜单中选择"SAMPLE"
3.点击"Compile and Emulate"按纽(或者按快捷键 F5)
4.点击"Single Step"按纽(或者按快捷键 F8),可以查看代码如何运行.
十进制系统
目前使用最多的是十进制.十进制系统有10个数字0,1,2,3,4,5,6,7,8,
9 利用这些数字能表示任何数值,例如754这些数字是由每一位数字乘以“基数”的幂
累加而成的(上一个例子中基数是 10 因为十进制中有十个数字)。
位置对于每一个数字是很重要的。例如,你将上一个例子中的“7”放到结尾:547
数值就成为:
特别提醒:任何数字的 0 次幂都是 1,0 的 0 次幂也是 1
二进制
计算机没有人类聪明(至少现在是这样),制造一个只有开关或者称为 0,1 两种状态的
电子机器很容易。计算机使用二进制系统,只有两个数字 0, 1 基地为 2 每一位二进制数称
作一位(BIT),4 BIT 组成一个半字节(NIBBLE),8BIT 组成一个字节(BYTE),两个
字节组成一个字(WORD),两个字组成一个双字(DOUBLE WORD)(很少使用):
习惯上在一串二进制后面加上“b”,这样,我们可以知道 101b 是二进制表示十进制的 5。
二进制 10100101b 表示十进制的 165,计算方法如下:
十六进制系统
十六进制系统使用 16 个数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 基底是 16. 十六
进制非常紧凑,便于阅读。将二进制转换为十六进制很容易,半字节(4bits) 对应一位十
六进制如下表
Decimal
(base 10)
Binary
(base 2)
Hexadecimal
(base 16)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
习惯上我们在一个十六进制数的后面加上 "H",以便和其他进制区别, 这样我们就知道
5Fh 是一个十六进制数表示十进制的 95。习惯上,我们也在以字母开头(从A到F)的十
六进制数前面 加上"0" 例如: 0E120h. 十六进制 1234h 等于 4660:
十进制到另外进制的换算
在换算中,将十进制数不断除以目标进制的基底,每一次都要记录下商和余数,直到商0。
余数用来表示结果。
下面是一个十进制39(基底是10)到十六进制(基底是16)的换算:
上例中所有的余数都小于10,不必使用字母。再举一个更复杂的例子:十进制 43868 换
结果为 27H
算为十六进制: