Emu8086的使用方法实验一新

合集下载

Emu8086使用指南中文

Emu8086使用指南中文
于是,得到二进制:0b
有符号数
对于十六进制数0FFh无法确定它是正数还是负数,因为它可以表示十进制的"255" 或者 "- 1"。
8位可以表示256个状态,于是,我们可以假定前128个表示正数(从0到127),接下来的128个数(从128到256)表示负数 。如果想表示"- 5",我们从256中减去5,即256 - 5 = 251。用这种复杂的方法表示一个负数有着数学依据的,数学上"- 5" 加上 "5"等于0。当我们将两个8位的数字5和251相加时,结果超过255,溢出处理为0!
IP 始终同CS 协同工作,指出当前执行的指令。 Flags Register 完成一次数学运算后,由CPU自动修改,通过它可以得到当前结果类型,也可以作为跳转语句条件。通常你无法直接访问它们。
寻址方式
我们可以通过下面的四个寄存器来寻址 BX, SI, DI, BP.
通过计算[]符号中的值,我们可以访问到不同内存单元的值。具体组合请看下表:
~not (inverts all bits).
*multiply.
/divide.
%modulus.
+sum.
-subtract (and unary -).
<<shift left.
>>shift right.
&bitwiseAND.
^bitwise XOR.
|bitwise OR.
二进制必须有“b”作结尾,例如00011011b十六进制必须有"h"作结尾,另外,当地一位是字母时,最前面必须加上0,例如:0ABCDh八进制必须有"o"作结尾,例如:77o

微机原理:EMU8086使用及指令系统熟悉

微机原理:EMU8086使用及指令系统熟悉

[公司名称]实验一EMU8086使用及指令系统熟悉微机原理上机实验[日期]一、实验要求1.熟悉并掌握EMU8086 汇编语言调试环境;2.学习8086的指令系统,输入简单的指令,观察各寄存器、内存相关单元以及处理器标志位的变化(数据传送类指令,算数运算类指令,逻辑运算类指令,标志处理和CPU控制类指令,移位和循环移位类指令,处理器控制类指令等,要求每类指令至少一个用例。

具体用例自行设计,可参考教材用例);3.学习汇编语言程序设计的基本步骤和方法;4.学会使用EMU8086 debug调试程序;5.编写一个简单的程序:将“This is my first ASM program-姓名(汉语拼音各人的姓名)”放在DS=1000H,BX=0000H开始的存储器单元中,然后将该内容搬移到BX=0100H开始的单元中,最后将该字符串通过DOS功能调用显示在屏幕上。

二、实验目的1.学习EMU8086仿真开发环境的使用,理解和掌握汇编语言编程的基本步骤;2.熟悉8086指令系统;3.熟悉变量、常量及伪指令的使用;4.熟悉内存单元的存储结构,字符串的处理以及简单的编程。

三、实验过程(调试分析)3.1熟悉并掌握EMU8086汇编调试环境此为EMU8086新建汇编源程序的界面,对应有四种模板可以挑选:①COM——无需分段,所有内容均放在代码段中,程序代码默认从ORG 0100H开始②EXE——需要分段,内容按代码段、数据段、堆栈段划分,编译器自动完成空间的分配③BIN——二进制文件,适用于所有用户定义的结构类型④BOOT——适用于在软盘中创建的文件⑤empty workspace可以创建空的文档此为一个EXE的模板3.2测试几类简单的指令3.2.1数据传送指令①测试一name "test mov"org 100hMOV AX, 1234HMOV BH, 12HMOV BL, 34HMOV CX, 12MOV DX, CXMOV SP, AX②测试二name "test mov2"org 100hMOV AX, 2000HMOV DS, AXMOV [1000H], 'A'MOV [1001H], 'B'MOV SI, 1000HMOV AX, [SI]HLT3.2.2算数运算指令计算a*b+c-18其中a=34H, b=56H, c=0E7Hdata segmentDAT1 DB 34HDAT2 DB 56HDAT3 DB 0E7HDATY DW ?endsstack segmentdw 128 dup(0)endscode segmentstart:ASSUME DS:DATA, SS:STACK, CS:CODE MOV AX, STACKMOV SS, AXMOV AX, DATAMOV DS, AXMOV AL, DAT1MOV BL, DAT2IMUL BLMOV BX, AXMOV AL, DAT3CBWADD AX, BXSUB AX, 18MOV DATY, AXendsend start3.2.3逻辑运算指令通过单步调试可以追踪到每一条指令执行所产生的效果,此处指放出最后结果的截图name 'test logic operation'org 100hMOV AX, 45FCHMOV BX, 0034HAND AL, 0FHOR BX, 000FHXOR AH, 0FHNOT BHHLT3.2.4标志处理和CPU控制类指令name 'test control and flags'org 100hCLC;0-->CFCMC;^CF-->CFSTD;1-->DFCLI;0-->IFNOPNOP;blankHLT;pause3.2.5循环和移位类指令name "test circle replacement"org 100hMOV BL, 01110010BSTC;1-->CFMOV CL, 3RCR BL, CLHLT算数移位三次后结果应该为BL=10101110B=AEH3.3编写一个简单的程序实现字符串的储存、搬移和显示①不分段,仅使用代码代码段,使用逐个字符存入name "FIRST PROGRAM"org 100h; set segment register:MOV AX, 1000HMOV DS, AXMOV BX, 0000H; print "This is my first ASM program-YongRongFeng"MOV [02h], 'T'MOV [04h], 'h'MOV [06h], 'i'MOV [08h], 's'MOV [0ah], ' 'MOV [0ch], 'm'MOV [0eh], 'y'MOV [10h], ' 'MOV [12h], 'f'MOV [14h], 'i'MOV [16h], 'r'MOV [18h], 's'MOV [1ah], 't'MOV [1ch], ' 'MOV [1eh], 'A'MOV [20h], 'S'MOV [22h], 'M'MOV [24h], ' 'MOV [26h], 'p'MOV [28h], 'r'MOV [2ah], 'o'MOV [2ch], 'g'MOV [2eh], 'r'MOV [30h], 'a'MOV [32h], 'm'MOV [34h], '-'MOV [36h], 'Y'MOV [38h], 'a'MOV [3ah], 'n'MOV [3ch], 'g'MOV [3eh], 'R'MOV [40h], 'o'MOV [42h], 'n'MOV [44h], 'g'MOV [46h], 'F'MOV [48h], 'e'MOV [4ah], 'n'MOV [4ch], 'g'MOV CX, 38 ; times of moving characters MOV BX, 0002H;move stringmove:MOV AX, [BX]MOV [BX+0100H], AXADD BX, 2LOOP move;print screenMOV BX, 0102HMOV CX, 38print:MOV DL, [BX]MOV AH, 02HINT 21HADD BX, 2LOOP print;return DOSMOV AH, 4CHINT 21Hret②分段并使用字符串输入,字符串显示name "FIRST PROGRAM USE HEX"data segmentHEX DB 'This is my first ASM program-YangRongFeng','$' endsstack segmentdw 128 dup(0)endscode segmentstart:;You need to correspond the segmentASSUME CS:CODE, DS:DATA, SS:STACK MOV AX, STACKMOV SS, AXMOV SP, 100MOV AX, DATAMOV DS, AX;print hex on the screenMOV DX, OFFSET HEXMOV AH, 9INT 21HMOV AH, 4CHINT 21H;return DOSendsend start。

8086实验指导书

8086实验指导书

频率 300KHz 8088
AEDK88ET
与PC机连
ADC0809
8279
VCC GND
8259 蜂呜器 8位开关
8251 8253 62256
39
I/O译码电路
40
第四章 硬件接口实验
41

实验一
一、实验要求
双色灯实验
编写程序,以8255为输出口,控制四个双色灯按红、绿、黄的要求发光。
二、实验目的
35
8. 实验仪必须如下显示才算加载成功
只有显示8688 2.1 才算加载成功
36
9.如何知道程序是不是处在执行状态,可观察如下几个位 置:

交替闪烁

交替闪烁
37
10.如何中止程序的执行
1.中止执行程 序按HALT
2 .恢复初始 状态按RST
38
电位器 译码器地址 8位LED 电源开关
交通灯 DAC0832 8255
26
主程序 调用inword 调用sort BUFF→SI [SI]→AL 调用display SI+1
Display子程序 AL/10→AL,AH AL+30H→AL AH+30H→AH AH→DH AH=2 调用 INT21H显示 显示空格 CX-1 CX=0? 结束
27
A
DH → AL
AH=2调用 INT21H显示 RET
23
实验二 从键盘输入并换
一. 实验要求 从键盘输入5个有符号2位十进制数,将它转换成有符号二进制数, 将结果送入内存中buff开始的单元中。 二. 实验目的 掌握键盘接受数据的方法,码制转换。 三. 实验程序框图 算法: ①符号字符串→标识符MINU。若为负, MINU=1; ②数字字符(31H~39H)→一位十进制数(0~9)a0,a1,a2… ③十进制数转换成十六进制数: 十六进制数=a2x100+a1x10+a0 =(a2x10+a1) x10+a0 ④ 转换后查符号,如果是负数,取补 码制转换部分流程图: 24

emu8086使用教程

emu8086使用教程

Emu8086模拟器
安装步骤如下:
1.解压缩:将解压到当前文件夹,会增加一个Emu8086 文件夹;
2.安装:打开Emu8086 文件夹,选择Emu8086 子文件夹,执行程序,进行安装;
3.汉化:将emu8086_汉化包解压缩,然后将其子文件夹emu8086_chs_zhaopeng内所有文件复制到C:\Program Files\文件夹内,完成汉化工作。

4.注册:按照Emu8086 文件夹内的“注册码.txt”文档提供的Name, Code, Licence进行注册,完成安装。

Emu8086的使用
新建文件(四种模板):
COM模板:适合简单程序段,从代码段的偏移地址为1000H处开始存放指令
EXE模板:适合完整程序的编写
BIN模板:一般不用,因为不能正确解释伪指令
BOOT模板:编写程序,数据段的段地址为07C0H
查看内存、修改内存:[查看]/[查看外部内存查看器]
查看变量值:[查看]/[变量]
查看标志寄存器:[查看]/[标志寄存器]查看堆栈:[查看]/[堆栈]
表达式求值:[数学]/[表达式求值]
数值转换:[数学]/[数值转换]。

微机原理与接口技实验报告

微机原理与接口技实验报告

微机原理与接口技术实验报告学院: 核技术与自动化工程学院专业: 电气工程及其自动化班级: XXXXXX学号: XXXXX姓名: XXX指导老师: XXX完成时间: 2012、11、14实验一 EMU8086软件的使用一、实验目的1、了解EMU 8086软件的基本使用步骤和各个工作区的功能,在能力方面主要是学以致用,将理论知识运用于实际的设计,从设计的完整和缺陷中找到新的突破口,以便温故而知新,从而提升自己的实际操作技能,能够通过自我想象与思考做出很多有价值的设计。

2、在系统的学习了微机原理与接口技术后,主要针对8086,利用emu8086软件设计一些程序,熟悉了解此款软件的运行过程中各个步骤寄存器内容及地址的变化。

3、在理论方面,基础软件实验部分共有六个实验组成,通过对这些实验程序的编写、调试,使学生熟悉8086/8088的指令系统等,了解程序设计过程,掌握汇编程序设计方法以及如何使用实验系统提供的各种调试、分析手段来排除程序错误。

二、实验仪器及设备PC设备、EMU8086软件平台、EMU8086软件仿真平台三、实验内容双击EMU8086图标,打开程序。

此时会弹出welcome窗口,见图1.1所示,可将该窗口关闭直接进入编辑状态;也可点击它的new按钮,则会弹出代码模板选择框供用户选择(可选择EXE模板),见图1.2所示,一般点击Cancel按钮,直接进入编辑状态。

在编辑窗口,可直接将源程序输入,见图1.3所示。

图1.1 welcome窗口图1.2 模板选择图1.3编辑窗口输入源程序点击compile(编译)按钮则进行汇编和链接,生成.EXE文件,并提示存盘。

点击emulate(仿真)按钮则可进入8086仿真器界面,见图1.4所示。

界面中提供了寄存器窗口、内存单元窗口及反汇编窗口,下方一行按钮则提供了虚拟屏幕、源代码观察、复位、辅助工具、变量、DEBUG、堆栈及FLAGS(标志寄存器)观察等功能。

Emu8086的使用方法(实验一)新

Emu8086的使用方法(实验一)新

MOV AX, DATA1
ADD AX, DATA2
MOV [2800H], AX
HLT
CSEG ENDS
END START
(注:源程序有故意保留的错误,请你改正)
文件的保存:点击快捷键“保存” 。
也可以从“文件”项目中选择“另存 为”。
• 所保存文件的扩展名,自动定为.ASM。
文件的编译:编辑好的文件需要进行 编译后才能运行。可点击“编译”快 捷键。
编辑界面:第一次编写源程序, 点击 “新建”按钮,否则,点击“打开”按 钮。
工作模板的选择:选择“EXE模 板”。
“EXE模板”编辑界面
几点说明: • “模板”列出了常用的“段”设置和
“子程序”设置部分,您可以根据需 要进行选择。不需要的部分及内容可 以直接删除。 • ASSMUME指令需要自己编写。
《微机原理及应用》实验
作者:张锡鹤 2012.10.11
实验一
Emu8086仿真软件的使用
实验目的:
1. 学习、掌握Emu8086软件的使用方法; 2. 了解汇编语言的程序结构及调试方法。
实验要求:
1. 能够正确选择Emu8086软件的工作模 板;
2. 能够正确编写存储器中两个多位无符 号数相加的源程序;
如果编译正确, “编译错误”栏 中空白。
如果出错, “编译错误” 栏中将有错 误说明。并 改变源文件 出错行的颜 色。
在源文件中 改正错误后 还需要重新 编译,直至 无错误为止。
建立并保存编译后的文件(取名)。
如果存在同名文件时,会出现提示。 是否替换原文件,你自己决定。
使用 “单步 执行” 便于观 察、分 析运行 的过程
• 从内存中观察计算结果。

emu8086教程而且是追码实例说明

emu8086教程而且是追码实例说明

今天我们详细说下emu8086教程而且是追码实例说明【详细过程开始】先简单介绍一下这一款软件的注册原理:这个软件在注册时,会同时在注册表中和自己的根目录中写下注册信息。

在启动时候会先判断注册表,然后判断根目录下的reg.ini文件看哪一个是成功的。

只要有一个是成功的就不再继续判断了,也就是只要有一处是成功的,软件就算是注册成功版了。

下面开始了:-------------------------------------注册流程----------------------------------005D4B01.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0;就先断在此处,开始往下调005D4B08.7D26jge short emu8086.005D4B30005D4B0A.68A0000000push0A0005D4B0F.68B8454400push emu8086.004445B8005D4B14.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4B1A.50push eax005D4B1B.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D4B21.51push ecx005D4B22.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4B28.898570FEFFFF mov dword ptr ss:[ebp-190],eax005D4B2E.EB0A jmp short emu8086.005D4B3A005D4B30>C78570FEFFFF00000000mov dword ptr ss:[ebp-190],0005D4B3A>8B5508mov edx,dword ptr ss:[ebp+8] 005D4B3D.8B02mov eax,dword ptr ds:[edx] 005D4B3F.8B4D08mov ecx,dword ptr ss:[ebp+8] 005D4B42.51push ecx005D4B43.FF90FC020000call dword ptr ds:[eax+2FC]005D4B49.50push eax005D4B4A.8D55C4lea edx,dword ptr ss:[ebp-3C]005D4B4D.52push edx005D4B4E.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D4B54.898504FFFFFF mov dword ptr ss:[ebp-FC],eax005D4B5A.8D45D4lea eax,dword ptr ss:[ebp-2C]005D4B5D.50push eax005D4B5E.8B8D04FFFFFF mov ecx,dword ptr ss:[ebp-FC]005D4B64.8B11mov edx,dword ptr ds:[ecx]005D4B66.8B8504FFFFFF mov eax,dword ptr ss:[ebp-FC]005D4B6C.50push eax005D4B6D.FF92A0000000call dword ptr ds:[edx+A0]005D4B73.DBE2fclex005D4B75.898500FFFFFF mov dword ptr ss:[ebp-100],eax005D4B7B.83BD00FFFFFF00cmp dword ptr ss:[ebp-100],0005D4B82.7D26jge short emu8086.005D4BAA005D4B84.68A0000000push0A0005D4B89.68B8454400push emu8086.004445B8005D4B8E.8B8D04FFFFFF mov ecx,dword ptr ss:[ebp-FC]005D4B94.51push ecx005D4B95.8B9500FFFFFF mov edx,dword ptr ss:[ebp-100]005D4B9B.52push edx005D4B9C.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4BA2.89856CFEFFFF mov dword ptr ss:[ebp-194],eax005D4BA8.EB0A jmp short emu8086.005D4BB4、005D6E88>66:8B55DC mov dx,word ptr ss:[ebp-24];循环3开始005D6E8C.66:039540FFFFFF add dx,word ptr ss:[ebp-C0];循环3当然是最后整理注册码了005D6E93.0F8003010000jo emu8086.005D6F9C005D6E99.66:8955DC mov word ptr ss:[ebp-24],dx005D6E9D>66:8B45DC mov ax,word ptr ss:[ebp-24]005D6EA1.66:3B853CFFFFFF cmp ax,word ptr ss:[ebp-C4]005D6EA8.7F24jg short emu8086.005D6ECE005D6EAA.C745FC29000000mov dword ptr ss:[ebp-4],29005D6EB1.8D4D B4lea ecx,dword ptr ss:[ebp-4C]005D6EB4.51push ecx005D6EB5.E8F6000000call emu8086.005D6FB0005D6EBA.8BD0mov edx,eax005D6EBC.8D4D B4lea ecx,dword ptr ss:[ebp-4C]005D6EBF.FF15D0134000call dword ptr ds:[<&MSVBVM60.__vbaStrMove>];MSVBVM60.__vbaStrMove005D6EC5.C745FC2A000000mov dword ptr ss:[ebp-4],2A005D6ECC.^EB BA jmp shortemu8086.005D6E88;循环3结尾005D6ECE>C745FC2B000000mov dword ptr ss:[ebp-4],2B005D6ED5.8B55B4mov edx,dword ptr ss:[ebp-4C]005D6ED8.89956CFFFFFF mov dword ptr ss:[ebp-94],edx005D6EDE.C78564FFFFFF08000000mov dword ptr ss:[ebp-9C],8005D6EE8.8D9564FFFFFF lea edx,dword ptr ss:[ebp-9C]005D6EEE.8D4D B8lea ecx,dword ptr ss:[ebp-48]005D6EF1.FF15B0134000call dword ptr ds:[<&MSVBVM60.__vbaVarCopy>];MSVBVM60.__vbaVarCopy005D6EF7.686C6F5D00push emu8086.005D6F6C005D6EFC.EB2E jmp short emu8086.005D6F2C;跳向005D6F2C已经实现005D6EFE.8B45F0mov eax,dword ptr ss:[ebp-10]005D6F01.83E004and eax,4005D6F04.85C0test eax,eax005D6F06.7409je short emu8086.005D6F11005D6F08.8D4D B8lea ecx,dword ptr ss:[ebp-48]005D6F0B.FF1534104000call dword ptr ds:[<&MSVBVM60.__vbaFreeVar>];MSVBVM60.__vbaFreeVar005D6F11>8D8D74FFFFFF lea ecx,dword ptr ss:[ebp-8C]005D6F17.51push ecx005D6F18.8D5584lea edx,dword ptr ss:[ebp-7C]005D6F1B.52push edx005D6F1C.8D4594lea eax,dword ptr ss:[ebp-6C]005D6F1F.50push eax005D6F20.6A03push3005D6F22.FF1550104000call dword ptr ds:[<&MSVBVM60.__vbaFreeVarList>;MSVBVM60.__vbaFreeVarList005D6F28.83C410add esp,10005D6F2B.C3retn005D6F2C>8D4D D8lea ecx,dword ptr ss:[ebp-28];跳转来自005D6EFC005D6F2F.FF153C144000call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>];MSVBVM60.__vbaFreeStr005D6F35.8D4D D4lea ecx,dword ptr ss:[ebp-2C]005D6F38.FF153C144000call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>];MSVBVM60.__vbaFreeStr005D6F3E.8D4D C8lea ecx,dword ptr ss:[ebp-38]005D4BAA>C7856CFEFFFF00000000mov dword ptr ss:[ebp-194],0005D4BB4>8B45D4mov eax,dword ptr ss:[ebp-2C]005D4BB7.8985C0FEFFFF mov dword ptr ss:[ebp-140],eax;运行至此,寄存器中已出现输入的假码005D4BBD.C745D400000000mov dword ptr ss:[ebp-2C],0005D4BC4.8B95C0FEFFFF mov edx,dword ptr ss:[ebp-140]005D4BCA.8D4D CC lea ecx,dword ptr ss:[ebp-34]005D4BCD.FF15D0134000call dword ptr ds:[<&MSVBVM60.__vbaStrMove>];MSVBVM60.__vbaStrMove005D4BD3.8B4D D8mov ecx,dword ptr ss:[ebp-28]005D4BD6.898D BCFEFFFF mov dword ptr ss:[ebp-144],ecx005D4BDC.C745D800000000mov dword ptr ss:[ebp-28],0005D4BE3.8B95BCFEFFFF mov edx,dword ptr ss:[ebp-144]005D4BE9.8D4D D0lea ecx,dword ptr ss:[ebp-30]005D4BEC.FF15D0134000call dword ptr ds:[<&MSVBVM60.__vbaStrMove>];MSVBVM60.__vbaStrMove005D4BF2.6864D46100push emu8086.0061D464005D4BF7.6884D46100push emu8086.0061D484;d005D4BFC.8D55CC lea edx,dword ptr ss:[ebp-34]005D4BFF.52push edx005D4C00.8D45D0lea eax,dword ptr ss:[ebp-30]005D4C04.E8E70F0000call emu8086.005D5BF0005D4C09.8D4D CC lea ecx,dword ptr ss:[ebp-34]005D4C0C.51push ecx005D4C0D.8D55D0lea edx,dword ptr ss:[ebp-30]005D4C10.52push edx005D4C11.6A02push2005D4C13.FF1544134000call dword ptr ds:[<&MSVBVM60.__vbaFreeStrList>;MSVBVM60.__vbaFreeStrList005D4C19.83C40C add esp,0C005D4C1C.8D45C4lea eax,dword ptr ss:[ebp-3C]005D4C1F.50push eax005D4C20.8D4D C8lea ecx,dword ptr ss:[ebp-38]005D4C23.51push ecx005D4C26.FF1560104000call dword ptr ds:[<&MSVBVM60.__vbaFreeObjList>;MSVBVM60.__vbaFreeObjList005D4C2C.83C40C add esp,0C005D4C2F.C745FC21000000mov dword ptr ss:[ebp-4],21005D4C36.66:C78510FFFFFF FFFF mov word ptr ss:[ebp-F0],0FFFF005D4C3F.8D9510FFFFFF lea edx,dword ptr ss:[ebp-F0]005D4C45.52push edx005D4C46.E835130000call emu8086.005D5F80;这个call按f8也能过去,就是算法call 按f7多走路005D4C4B.C745FC22000000mov dword ptr ss:[ebp-4],22;返回于此005D4C52.0FBF0570D46100movsx eax,word ptr ds:[61D470]005D4C59.85C0test eax,eax005D4C5B0F8453050000je emu8086.005D51B4;关键的一跳,跳向失败处005D4C61.C745FC23000000mov dword ptr ss:[ebp-4],23005D4C68.680000FF00push0FF0000005D4C6D.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4C70.8B11mov edx,dword ptr ds:[ecx]005D4C72.8B4508mov eax,dword ptr ss:[ebp+8]005D4C75.50push eax005D4C76.FF5264call dword ptr ds:[edx+64]005D4C79.DBE2fclex005D4C7B.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4C81.83BD0CFFFFFF00cmp dword ptr ss:[ebp-F4],0005D4C887D20jge short emu8086.005D4CAA005D4C8A.6A64push64005D4C8C.6860B24400push emu8086.0044B260005D4C91.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4C94.51push ecx005D4C95.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D4C9B.52push edx005D4C9C.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4CA2.898568FEFFFF mov dword ptr ss:[ebp-198],eax005D4CA8.EB0A jmp short emu8086.005D4CB4005D4CAA>C78568FEFFFF00000000mov dword ptr ss:[ebp-198],0005D4CB4>C745FC24000000mov dword ptrss:[ebp-4],24;下面一句不用我多说了吧,注册成功了005D4CBB.6818074500push emu8086.00450718;the software is successfully registered005D4CC0.8B4508mov eax,dword ptr ss:[ebp+8]005D4CC3.8B08mov ecx,dword ptr ds:[eax]005D4CC5.8B5508mov edx,dword ptr ss:[ebp+8]005D4CC8.52push edx005D4CC9.FF5154call dword ptr ds:[ecx+54]005D4CCC.DBE2fclex005D4CCE.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4CD4.83BD0CFFFFFF00cmp dword ptr ss:[ebp-F4],0005D4CDB.7D20jge short emu8086.005D4CFD005D4CDD.6A54push54005D4CDF.6860B24400push emu8086.0044B260005D4CE4.8B4508mov eax,dword ptr ss:[ebp+8]005D4CE7.50push eax005D4CE8.8B8D0CFFFFFF mov ecx,dword ptr ss:[ebp-F4]005D4CEE.51push ecx005D4CEF.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4CF5.898564FEFFFF mov dword ptr ss:[ebp-19C],eax005D4CFB.EB0A jmp short emu8086.005D4D07005D4CFD>C78564FEFFFF00000000mov dword ptr ss:[ebp-19C],0005D4D07>C745FC25000000mov dword ptr ss:[ebp-4],25005D4D0E.8B5508mov edx,dword ptr ss:[ebp+8]005D4D11.8B02mov eax,dword ptr ds:[edx]005D4D13.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4D16.51push ecx005D4D17.FF900C030000call dword ptr ds:[eax+30C]005D4D1D.50push eax005D4D1E.8D55C8lea edx,dword ptr ss:[ebp-38]005D4D21.52push edx005D4D22.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D4D28.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4D2E.6A00push0005D4D30.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4D36.8B08mov ecx,dword ptr ds:[eax]005D4D38.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D4D3E.52push edx005D4D3F.FF9194000000call dword ptr ds:[ecx+94]005D4D45.DBE2fclex005D4D47.898508FFFFFF mov dword ptr ss:[ebp-F8],eax005D4D4D.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0005D4D54.7D26jge short emu8086.005D4D7C005D4D56.6894000000push94005D4D5B.6880B54300push emu8086.0043B580005D4D60.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4D66.50push eax005D4D67.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D4D6D.51push ecx005D4D6E.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4D74.898560FEFFFF mov dword ptr ss:[ebp-1A0],eax005D4D7A.EB0A jmp short emu8086.005D4D86005D4D7C>C78560FEFFFF00000000mov dword ptr ss:[ebp-1A0],0005D4D86>8D4D C8lea ecx,dword ptr ss:[ebp-38]005D4D89.FF1538144000call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>];MSVBVM60.__vbaFreeObj005D4D8F.C745FC26000000mov dword ptr ss:[ebp-4],26005D4D96.8B5508mov edx,dword ptr ss:[ebp+8]005D4D99.8B02mov eax,dword ptr ds:[edx]005D4D9B.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4D9E.51push ecx005D4D9F.FF9004030000call dword ptr ds:[eax+304]005D4DA5.50push eax005D4DA6.8D55C8lea edx,dword ptr ss:[ebp-38]005D4DA9.52push edx005D4DAA.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D4DB0.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4DB6.6A00push0005D4DB8.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4DBE.8B08mov ecx,dword ptr ds:[eax]005D4DC0.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D4DC6.52push edx005D4DC7.FF9194000000call dword ptr ds:[ecx+94]005D4DCD.DBE2fclex005D4DCF.898508FFFFFF mov dword ptr ss:[ebp-F8],eax005D4DD5.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0005D4DDC.7D26jge short emu8086.005D4E04005D4DDE.6894000000push94005D4DE3.6880B54300push emu8086.0043B580005D4DE8.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4DEE.50push eax005D4DEF.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D4DF5.51push ecx005D4DF6.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4DFC.89855CFEFFFF mov dword ptr ss:[ebp-1A4],eax005D4E02.EB0A jmp short emu8086.005D4E0E005D4E04>C7855CFEFFFF00000000mov dword ptr ss:[ebp-1A4],0005D4E0E>8D4D C8lea ecx,dword ptr ss:[ebp-38]005D4E11.FF1538144000call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>];MSVBVM60.__vbaFreeObj005D4E17.C745FC27000000mov dword ptr ss:[ebp-4],27005D4E1E.8B5508mov edx,dword ptr ss:[ebp+8]005D4E21.8B02mov eax,dword ptr ds:[edx]005D4E23.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4E26.51push ecx005D4E27.FF9008030000call dword ptr ds:[eax+308]005D4E2D.50push eax005D4E2E.8D55C8lea edx,dword ptr ss:[ebp-38]005D4E31.52push edx005D4E32.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D4E38.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4E3E.6A00push0005D4E40.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4E46.8B08mov ecx,dword ptr ds:[eax]005D4E48.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D4E4E.52push edx005D4E4F.FF9194000000call dword ptr ds:[ecx+94]005D4E55.DBE2fclex005D4E57.898508FFFFFF mov dword ptr ss:[ebp-F8],eax005D4E5D.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0005D4E64.7D26jge short emu8086.005D4E8C005D4E66.6894000000push94005D4E6B.6880B54300push emu8086.0043B580005D4E70.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4E76.50push eax005D4E77.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D4E7D.51push ecx005D4E7E.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4E84.898558FEFFFF mov dword ptr ss:[ebp-1A8],eax005D4E8A.EB0A jmp short emu8086.005D4E96005D4E8C>C78558FEFFFF00000000mov dword ptr ss:[ebp-1A8],0005D4E96>8D4D C8lea ecx,dword ptr ss:[ebp-38]005D4E99.FF1538144000call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>];MSVBVM60.__vbaFreeObj005D4E9F.C745FC28000000mov dword ptr ss:[ebp-4],28005D4EA6.8B5508mov edx,dword ptr ss:[ebp+8]005D4EA9.8B02mov eax,dword ptr ds:[edx]005D4EAB.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4EAE.51push ecx005D4EAF.FF9000030000call dword ptr ds:[eax+300]005D4EB5.50push eax005D4EB6.8D55C8lea edx,dword ptr ss:[ebp-38]005D4EB9.52push edx005D4EBA.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D4EC0.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4EC6.6A00push0005D4EC8.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4ECE.8B08mov ecx,dword ptr ds:[eax]005D4ED0.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D4ED6.52push edx005D4ED7.FF9194000000call dword ptr ds:[ecx+94]005D4EDD.DBE2fclex005D4EDF.898508FFFFFF mov dword ptr ss:[ebp-F8],eax005D4EE5.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0005D4EEC.7D26jge short emu8086.005D4F14005D4EEE.6894000000push94005D4EF3.68B8454400push emu8086.004445B8005D4EF8.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4EFE.50push eax005D4EFF.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D4F05.51push ecx005D4F06.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4F0C.898554FEFFFF mov dword ptr ss:[ebp-1AC],eax005D4F12.EB0A jmp short emu8086.005D4F1E005D4F14>C78554FEFFFF00000000mov dword ptr ss:[ebp-1AC],0005D4F1E>8D4D C8lea ecx,dword ptr ss:[ebp-38]005D4F21.FF1538144000call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>];MSVBVM60.__vbaFreeObj005D4F27.C745FC29000000mov dword ptr ss:[ebp-4],29005D4F2E.8B5508mov edx,dword ptr ss:[ebp+8]005D4F31.8B02mov eax,dword ptr ds:[edx]005D4F33.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4F36.51push ecx005D4F37.FF90FC020000call dword ptr ds:[eax+2FC]005D4F3D.50push eax005D4F3E.8D55C8lea edx,dword ptr ss:[ebp-38]005D4F41.52push edx005D4F42.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D4F48.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4F4E.6A00push0005D4F50.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4F56.8B08mov ecx,dword ptr ds:[eax]005D4F58.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D4F5E.52push edx005D4F5F.FF9194000000call dword ptr ds:[ecx+94]005D4F65.DBE2fclex005D4F67.898508FFFFFF mov dword ptr ss:[ebp-F8],eax005D4F6D.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0005D4F74.7D26jge short emu8086.005D4F9C005D4F76.6894000000push94005D4F7B.68B8454400push emu8086.004445B8005D4F80.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4F86.50push eax005D4F87.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D4F8D.51push ecx005D4F8E.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D4F94.898550FEFFFF mov dword ptr ss:[ebp-1B0],eax005D4F9A.EB0A jmp short emu8086.005D4FA6005D4F9C>C78550FEFFFF00000000mov dword ptr ss:[ebp-1B0],0005D4FA6>8D4D C8lea ecx,dword ptr ss:[ebp-38]005D4FA9.FF1538144000call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>];MSVBVM60.__vbaFreeObj005D4FAF.C745FC2A000000mov dword ptr ss:[ebp-4],2A005D4FB6.8B5508mov edx,dword ptr ss:[ebp+8]005D4FB9.8B02mov eax,dword ptr ds:[edx]005D4FBB.8B4D08mov ecx,dword ptr ss:[ebp+8]005D4FBE.51push ecx005D4FBF.FF9014030000call dword ptr ds:[eax+314]005D4FC5.50push eax005D4FC6.8D55C8lea edx,dword ptr ss:[ebp-38]005D4FC9.52push edx005D4FCA.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D4FD0.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D4FD6.6A00push0005D4FD8.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D4FDE.8B08mov ecx,dword ptr ds:[eax]005D4FE0.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D4FE6.52push edx005D4FE7.FF919C000000call dword ptr ds:[ecx+9C]005D4FED.DBE2fclex005D4FEF.898508FFFFFF mov dword ptr ss:[ebp-F8],eax005D4FF5.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0005D4FFC.7D26jge short emu8086.005D5024005D4FFE.689C000000push9C005D5003.685CB74300push emu8086.0043B75C005D5008.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D500E.50push eax005D500F.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D5015.51push ecx005D5016.FF15B0104000call dword ptrds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D501C.89854CFEFFFF mov dword ptr ss:[ebp-1B4],eax005D5022.EB0A jmp short emu8086.005D502E005D5024>C7854CFEFFFF00000000mov dword ptr ss:[ebp-1B4],0005D502E>8D4D C8lea ecx,dword ptr ss:[ebp-38]005D5031.FF1538144000call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>];MSVBVM60.__vbaFreeObj005D5037.C745FC2B000000mov dword ptr ss:[ebp-4],2B005D503E.8B5508mov edx,dword ptr ss:[ebp+8]005D5041.8B02mov eax,dword ptr ds:[edx]005D5043.8B4D08mov ecx,dword ptr ss:[ebp+8]005D5046.51push ecx005D5047.FF9010030000call dword ptr ds:[eax+310]005D504D.50push eax005D504E.8D55C8lea edx,dword ptr ss:[ebp-38]005D5051.52push edx005D5052.FF15FC104000call dword ptr ds:[<&MSVBVM60.__vbaObjSet>];MSVBVM60.__vbaObjSet005D5058.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D505E.6A00push0005D5060.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D5066.8B08mov ecx,dword ptr ds:[eax]005D5068.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D506E.52push edx005D506F.FF919C000000call dword ptr ds:[ecx+9C]005D5075.DBE2fclex005D5077.898508FFFFFF mov dword ptr ss:[ebp-F8],eax005D507D.83BD08FFFFFF00cmp dword ptr ss:[ebp-F8],0005D5084.7D26jge short emu8086.005D50AC005D5086.689C000000push9C005D508B.685CB74300push emu8086.0043B75C005D5090.8B850CFFFFFF mov eax,dword ptr ss:[ebp-F4]005D5096.50push eax005D5097.8B8D08FFFFFF mov ecx,dword ptr ss:[ebp-F8]005D509D.51push ecx005D509E.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D50A4.898548FEFFFF mov dword ptr ss:[ebp-1B8],eax005D50AA.EB0A jmp short emu8086.005D50B6005D50AC>C78548FEFFFF00000000mov dword ptr ss:[ebp-1B8],0005D50B6>8D4D C8lea ecx,dword ptr ss:[ebp-38]005D50B9.FF1538144000call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>];MSVBVM60.__vbaFreeObj005D50BF.C745FC2C000000mov dword ptr ss:[ebp-4],2C005D50C6.C7458C04000280mov dword ptr ss:[ebp-74],80020004005D50CD.C745840A000000mov dword ptr ss:[ebp-7C],0A005D50D4.C7459C04000280mov dword ptr ss:[ebp-64],80020004005D50DB.C745940A000000mov dword ptr ss:[ebp-6C],0A005D50E2.C7853CFFFFFF4C744300mov dword ptr ss:[ebp-C4],emu8086.0043744C005D50EC.C78534FFFFFF08000000mov dword ptr ss:[ebp-CC],8005D50F6.8D9534FFFFFF lea edx,dword ptr ss:[ebp-CC]005D50FC.8D4D A4lea ecx,dword ptr ss:[ebp-5C]005D50FF.FF1594134000call dword ptr ds:[<&MSVBVM60.__vbaVarDup>];MSVBVM60.__vbaVarDup005D5105.C7854CFFFFFF6C074500mov dword ptr ss:[ebp-B4],emu8086.0045076C;THANK YOU005D510F.C78544FFFFFF08000000mov dword ptr ss:[ebp-BC],8005D5119.8D9544FFFFFF lea edx,dword ptr ss:[ebp-BC]005D511F.8D4D B4lea ecx,dword ptr ss:[ebp-4C]005D5122.FF1594134000call dword ptr ds:[<&MSVBVM60.__vbaVarDup>];MSVBVM60.__vbaVarDup005D5128.8D5584lea edx,dword ptr ss:[ebp-7C]005D512B.52push edx005D512C.8D4594lea eax,dword ptr ss:[ebp-6C]005D512F.50push eax005D5130.8D4D A4lea ecx,dword ptr ss:[ebp-5C]005D5133.51push ecx005D5134.6A00push0005D5136.8D55B4lea edx,dword ptr ss:[ebp-4C]005D5139.52push edx005D513A.FF1500114000call dword ptr ds:[<&MSVBVM60.#595>];MSVBVM60.rtcMsgBox005D5140.8D4584lea eax,dword ptr ss:[ebp-7C]005D5143.50push eax005D5144.8D4D94lea ecx,dword ptr ss:[ebp-6C]005D5147.51push ecx005D5148.8D55A4lea edx,dword ptr ss:[ebp-5C]005D514B.52push edx005D514C.8D45B4lea eax,dword ptr ss:[ebp-4C]005D514F.50push eax005D5150.6A04push4005D5152.FF1550104000call dword ptr ds:[<&MSVBVM60.__vbaFreeVarList>;MSVBVM60.__vbaFreeVarList005D5158.83C414add esp,14005D515B.C745FC2D000000mov dword ptr ss:[ebp-4],2D005D5162.8B4D08mov ecx,dword ptr ss:[ebp+8]005D5165.8B11mov edx,dword ptr ds:[ecx]005D5167.8B4508mov eax,dword ptr ss:[ebp+8]005D516A.50push eax005D516B.FF92B4020000call dword ptr ds:[edx+2B4]005D5171.DBE2fclex005D5173.89850CFFFFFF mov dword ptr ss:[ebp-F4],eax005D5179.83BD0CFFFFFF00cmp dword ptr ss:[ebp-F4],0005D51807D23jge short emu8086.005D51A5005D5182.68B4020000push2B4005D5187.6860B24400push emu8086.0044B260005D518C.8B4D08mov ecx,dword ptr ss:[ebp+8]005D518F.51push ecx005D5190.8B950CFFFFFF mov edx,dword ptr ss:[ebp-F4]005D5196.52push edx005D5197.FF15B0104000call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;MSVBVM60.__vbaHresultCheckObj005D519D.898544FEFFFF mov dword ptr ss:[ebp-1BC],eax005D51A3.EB0A jmp short emu8086.005D51AF005D51A5>C78544FEFFFF00000000mov dword ptr ss:[ebp-1BC],0005D51AF>E9F5000000jmp emu8086.005D52A9005D51B4>C745FC2F000000mov dword ptr ss:[ebp-4],2F;跳到这里,即错误提示处005D51BB.BA C0074500mov edx,emu8086.004507C0;wrong registration key.005D51C0.8D4D D8lea ecx,dword ptr ss:[ebp-28]005D51C3.FF1528134000call dword ptr ds:[<&MSVBVM60.__vbaStrCopy>];MSVBVM60.__vbaStrCopy005D51C9.8D45D8lea eax,dword ptr ss:[ebp-28]005D51CC.50push eax005D51CD.E8CE8F0100call emu8086.005EE1A0005D51D2.8BD0mov edx,eax005D51D4.8D4D D0lea ecx,dword ptr ss:[ebp-30]005D51D7.FF15D0134000call dword ptr ds:[<&MSVBVM60.__vbaStrMove>];MSVBVM60.__vbaStrMove005D51DD.BA0C0E4400mov edx,emu8086.00440E0C;error!005D51E2.8D4D D4lea ecx,dword ptr ss:[ebp-2C]005D51E5.FF1528134000call dword ptr ds:[<&MSVBVM60.__vbaStrCopy>];MSVBVM60.__vbaStrCopy005D51EB.8D4D D4lea ecx,dword ptr ss:[ebp-2C]005D51EE.51push ecx005D51EF.E8AC8F0100call emu8086.005EE1A0005D51F4.8BD0mov edx,eax005D51F6.8D4D CC lea ecx,dword ptr ss:[ebp-34]005D51F9.FF15D0134000call dword ptr ds:[<&MSVBVM60.__vbaStrMove>];MSVBVM60.__vbaStrMove005D51FF.C7458C04000280mov dword ptr ss:[ebp-74],80020004005D5206.C745840A000000mov dword ptr ss:[ebp-7C],0A005D520D.C7459C04000280mov dword ptr ss:[ebp-64],80020004005D5214.C745940A000000mov dword ptr ss:[ebp-6C],0A005D521B.8B55CC mov edx,dword ptr ss:[ebp-34]005D521E.8995B8FEFFFF mov dword ptr ss:[ebp-148],edx005D5224.C745CC00000000mov dword ptr ss:[ebp-34],0005D522B.8B85B8FEFFFF mov eax,dword ptr ss:[ebp-148]005D5231.8945AC mov dword ptr ss:[ebp-54],eax005D5234.C745A408000000mov dword ptr ss:[ebp-5C],8005D523B.8B4D D0mov ecx,dword ptr ss:[ebp-30]005D523E.898D B4FEFFFF mov dword ptr ss:[ebp-14C],ecx005D5244.C745D000000000mov dword ptr ss:[ebp-30],0005D524B.8B95B4FEFFFF mov edx,dword ptr ss:[ebp-14C]005D5251.8955BC mov dword ptr ss:[ebp-44],edx005D5254.C745B408000000mov dword ptr ss:[ebp-4C],8005D525B.8D4584lea eax,dword ptr ss:[ebp-7C]005D525E.50push eax005D525F.8D4D94lea ecx,dword ptr ss:[ebp-6C]005D5262.51push ecx005D5263.8D55A4lea edx,dword ptr ss:[ebp-5C]005D5266.52push edx005D5267.6A00push0005D5269.8D45B4lea eax,dword ptr ss:[ebp-4C]005D526C.50push eax;下面的call就弹出错误提示框了005D526D.FF1500114000call dword ptr ds:[<&MSVBVM60.#595>];MSVBVM60.rtcMsgBox-----------------------------进入关键call后的流程-----------------------------------005D5F80$55push ebp;按f7后到此处。

Emu8086软件的使用

Emu8086软件的使用

Emu8086软件的使用一、实验目的:(1)熟悉汇编语言开发环境。

(2)掌握Emu8086软件使用方法。

(3)了解汇编语言的程序结构、调试一个简单的程序。

(4)理解寻址方式的意义。

二、实验内容及要求:1、Emu8086的使用(1)打开桌面上的Emu8086的图标,出现如图所示的对话框,选择【继续……】首次打开软件,界面中默认已有一段小程序。

该程序实现在屏幕上显示三段字符串的功能。

若用户需要自己重新编程,可点击工具栏的【新建】图标,出现如图所示的对话框,选择编程所采用的模板。

选择不同的模板,在程序源代码中会出现如下标记:#MAKE_COM# 选择COM模板#MAKE_BIN# 选择BIN模板#MAKE_EXE# 选择EXE模板#MAKE_BOOT# 选择BOOT模板#MAKE_COM#最古老的一个最简单的可执行文件格式。

采用此格式,源代码应该在100H后加载(即:源代码之前应有ORG 100H)。

从文件的第一个字节开始执行。

支持DOS和Windows命令提示符。

#MAKE_EXE#一种更先进的可执行文件格式。

源程序代码的规模不限,源代码的分段也不限,但程序中必须包含堆栈段的定义。

您可以选择从新建菜单中的EXE模板创建一个简单的EXE程序,有明确的数据段,堆栈段和代码段的定义。

程序员在源代码中定义程序的入口点(即开始执行的位置),该格式支持DOS和Windows命令提示符。

这两种模板是最常用的模板(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面,如图所示:在源代码编辑器的空白区域,编写如下一段小程序:MOV AX, 5MOV BX, 10ADD AX, BXSUB AX, 1HLT代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。

本例将源代码保存为001.asm。

点击工具栏的【模拟】按钮,如果程序有错误不能编译,出现如图所示的界面:点击错误提示,即可选择源代码中相应的错误的行,在此处更改源代码。

试验一调试工具DEBUG的使用

试验一调试工具DEBUG的使用
回答:
5)SP的中文名称?________,当前SP=______,为何变小?
____________________________
〈操作〉-t
6)刚执行的指令是:______________
〈操作〉-t
7)刚执行的指令是:______________
相关单元____变为______.
〈操作〉-t
code ends
end start
7、单步运行程序,分别记录运行上述程序中粗体部分时所对应的目标操作数中的内容。
【思考题】
1、上述一(1)程序中所完成1+2+3+…+100的功能,ax中保存最后计算结果,如果cmp bx,100,改成cmp bx, 400,AX中是否为1+2+3+…+400的结果,为什么?如果需要完成这种功能,应该怎样处理?
2)程序的入口地址=?_________________
(2)用断点命令观察执行结果
-g 10
回答:
3)AX=________ BX=________
对这2个寄存器的用途解释一下:______________________
(3)单步执行
用-q先退出DEBUG,重新进入DEBUG,debugex1.exe
〈操作〉-u 0 10
〈操作〉-r
〈操作〉-t
回答:
4)DS=______的两个字节,存放在堆栈段的哪两个地方(字节地址)?__________________
说明:用d ss:偏移量可观察到堆栈段的数据,以此验证。
〈操作〉-t
说明:此时执行了mov ax,0指令。
〈操作〉-t
说明:此时执行了PUSH AX指令。

Emu8086使用指南教案资料

Emu8086使用指南教案资料

E m u8086使用指南如何运行?1.在开始菜单选在它的图标,或者直接运行Emu8086.EXE2.在"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 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 910 1010 A11 1011 B12 1100 C13 1101 D14 1110 E15 1111 F习惯上我们在一个十六进制数的后面加上"H",以便和其他进制区别, 这样我们就知道 5Fh是一个十六进制数表示十进制的 95。

实验一-8086汇编语言上机调试及基本操作.

实验一-8086汇编语言上机调试及基本操作.

实验一:8086汇编语言上机调试及基本操作(验证性)1、实验目的:(1)掌握常用DEBUG命令: G,D,R,T,U,Q。

(2)掌握工具软件EMU8086。

(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。

(4)掌握简单的数值转换算法2、实验说明:计算机中的数值有各种表达方式,这是计算机的基础。

掌握各种数制之间的转换是一种基本功。

3、程序框图:对于0-999(即000H-3E7H)范围内的二进制数4、参考程序:; 将AX中的三位数拆为三个BCD码, 并存入Result 开始的三个单元DATA SEGMENT; 数据段RESULT_1 DB 1RESULT_2 DB 1RESULT_3 DB 1DATA ENDSSTACK SEGMENT STACK ; 堆栈段STA DB 64 DUP(0)STACK_TOP DB 0STACK ENDSCODE SEGMENT; 代码段ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACKSTART:MOV AX, DATAMOV DS, AX ; 设置数据段MOV AX, STACKMOV SS, AX ; 设置堆栈段LEA SP, STACK_TOP ; 设置栈顶指针MOV AX, 2afHMOV CL, 100DIV CLMOV RESULT_1, AL ; 除以100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT_2, AL ; 余数除以10, 得十位数MOV RESULT_3, AH ; 余数为个位数MOV AX,4C00H ; 返回DOSINT 21H ;CODE ENDSEND START ; 最后一行要按回车键5、实验及报告要求:1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的伪指令和指令;2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。

实验01 Emu8086软件的使用

实验01 Emu8086软件的使用

实验一Emu8086软件的使用(二课时)一、实验目的:(1)熟悉汇编语言开发环境。

(2)掌握Emu8086软件使用方法。

(3)了解汇编语言的程序结构、调试一个简单的程序。

(4)理解寻址方式的意义。

二、实验内容及要求:1、Emu8086的使用(1)打开桌面上的Emu8086的图标,出现如图所示的对话框,选择【继续……】首次打开软件,界面中默认已有一段小程序。

该程序实现在屏幕上显示三段字符串的功能。

若用户需要自己重新编程,可点击工具栏的【新建】图标,出现如图所示的对话框,选择编程所采用的模板。

选择不同的模板,在程序源代码中会出现如下标记:#MAKE_COM# 选择COM模板#MAKE_BIN# 选择BIN模板#MAKE_EXE# 选择EXE模板#MAKE_BOOT# 选择BOOT模板#MAKE_COM#最古老的一个最简单的可执行文件格式。

采用此格式,源代码应该在100H后加载(即:源代码之前应有ORG 100H)。

从文件的第一个字节开始执行。

支持DOS和Windows命令提示符。

#MAKE_EXE#一种更先进的可执行文件格式。

源程序代码的规模不限,源代码的分段也不限,但程序中必须包含堆栈段的定义。

您可以选择从新建菜单中的EXE模板创建一个简单的EXE程序,有明确的数据段,堆栈段和代码段的定义。

程序员在源代码中定义程序的入口点(即开始执行的位置),该格式支持DOS和Windows命令提示符。

这两种模板是最常用的模板(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面,如图所示:在源代码编辑器的空白区域,编写如下一段小程序:MOV AX, 5MOV BX, 10ADD AX, BXSUB AX, 1HLT代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。

本例将源代码保存为001.asm。

点击工具栏的【模拟】按钮,如果程序有错误不能编译,出现如图所示的界面:点击错误提示,即可选择源代码中相应的错误的行,在此处更改源代码。

汇编语言,Emu8086使用指南

汇编语言,Emu8086使用指南

目前使用最多的是十进制.十进制系统有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 ) 对应一位十六进制如下表习惯上我们在一个十六进制数的后面加上 "H",以便和其他进制区别, 这样我们就知道 5Fh 是一个十六进制数表示十进制的 95。

习惯上,我们也在以字母开头(从A到F)的十六进制数前面 加上"0" 例如: 0E120h . 十六进制 1234h 等于 4660:十进制到另外进制的换算在换算中,将十进制数不断除以目标进制的基底,每一次都要记录下商和余数,直到商0。

余数用来表示结果。

下面是一个十进制39(基底是10)到十六进制(基底是16)的换算:结果为27H上例中所有的余数都小于10,不必使用字母。

Emu8086使用指南

Emu8086使用指南

Emu8086使用指南1:简介1.1 Emu8086简介1.2 Emu8086的特点1.3 Emu8086的应用领域2:安装与配置2.1 Emu8086的系统要求2.2 与安装Emu80862.3 Emu8086的基本配置3: Emu8086界面介绍3.1 主界面3.2 菜单栏3.3 工具栏3.4 编辑区域3.5 状态栏4:编写与调试汇编程序4.1 新建程序4.2 编写程序代码4.3 汇编与运行程序4.4 调试程序5:存储器与寄存器5.1 存储器的概念5.2 内存寻址5.3 寄存器的概念5.4 常用寄存器6:汇编指令集6.1 数据传送指令6.2 算术运算指令6.3 逻辑运算指令6.4 控制转移指令6.5 输入与输出指令7:软件中断与中断处理程序 7.1 软件中断的概念7.2 常用的软件中断7.3 编写中断处理程序8:过程与宏指令8.1 过程的概念8.2 定义与调用过程8.3 宏指令的概念8.4 定义与调用宏指令9:汇编程序优化与调试技巧9.1 优化汇编程序9.2 调试技巧与常见问题10:附件附件1:示例程序源代码附件2:示例程序运行结果注释:- Emu8086: 一款流行的x86汇编语言模拟器,用于学习和开发汇编语言程序。

- 汇编指令集: 一组用于编写汇编语言程序的指令集合。

- 软件中断: 由软件触发的处理器中断,用于实现系统调用和其他功能。

- 中断处理程序: 在出现中断时执行的特定代码块,用于响应中断事件。

- 过程: 一组按顺序执行的指令,通过调用以实现代码的模块化。

- 宏指令: 一种在汇编程序中定义和使用的可重用代码片段。

- 优化: 通过改进算法和代码结构来改善程序性能。

- 调试: 处理程序中的错误和问题,以确保程序正确执行。

本文档涉及附件:- 附件1:示例程序源代码- 附件2:示例程序运行结果本文所涉及的法律名词及注释:- 无。

最新汇编语言程序设计实验篇(emu8086)教案资料

最新汇编语言程序设计实验篇(emu8086)教案资料

1.汇编语言程序设计实验篇1.1.汇编系统软件简介Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。

它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。

该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。

利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。

1.1.1创建程序 TEMPLATE程序本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。

打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。

输入全部指令后,单击按钮,保存相应的程序段。

2.EXE TEMPLATE程序本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。

打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。

在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

EMU8086模拟器环境中内存及操作

EMU8086模拟器环境中内存及操作

实验二EMU8086模拟器环境中内存的操作姓名:付玉伟学号: 10538057 成绩:实验要求:熟悉EMU8086模拟器的操作实验目标:1. 了解和掌握在EMU8086实验环境中对内存的赋值;2. 掌握各种寻址方式:立即数寻址,寄存器寻址和存储器寻址。

实验源程序:MOV AH, 55HMOV AL,66HMOV BX,2000HMOV SI, 0002HMOV BP,2000HMOV DI, 0001HMOV AX, BXMOV AX, [BX]MOV AX, [BX+SI]MOV AX, [BX+DI]MOV AX, [BP]MOV AX, [BP+0002H]HLTMOV AX, 1020HMOV BX,2030HMOV AX, BXADD AX,BXMOV [BX],AXMOV [2032H],AXHLT实验结果:12.模拟后实际源程序窗口2程序调试窗口各个寄存器的值:AX:0000, BX:0000, CX:0058, DX:0000 CS:0B56, ES:0B56, SS:0B56, DS:0B56 SP:FFFE, BP:0000SI:0000, DI:0000CF=0,ZF=0,SF=0,OF=0,PF=0,AF=0,IF=1,DF=0.8.修改字节赋值立即数寻址把00102H送入DX DH=01,DL=02立即数寻址 AH=09,AL=24立即数寻址基址寻址把数据段中以BX为有效地址的存储器单元的字节送AX每次单步执行后,相关寄存器值的变化二、1、2、物理地址=段地址*16+偏移地址,内存里面被输入了相应的值重要命令集锦:mov,hlt学习心得:通过这次实验,我对EMU8086实验模拟环境有相应的了解,熟悉了基本的EMU8086的使用方法,同时也对mov这个指令有了深入的理解,并且知道了各个存储器里面的值得存储过程,为以后的的学习打下了坚实的基础。

欢迎您的下载,资料仅供参考!。

ch01-Emu8086汇编软件使用

ch01-Emu8086汇编软件使用

第1章 Emu8086汇编软件使用一. 实验目的1. 熟悉汇编语言开发环境2. 掌握Emu8086软件使用方法和调试方法3. 熟悉汇编语言的编辑、汇编、连接、运行的全过程4. 调试简单的程序二. 实验条件安装有Emu8086仿真软件的电脑一台。

三. 预习要求预习Emu8086的使用方法和汇编语言指令。

Emu8086是一个可在Windows 环境下运行的8086CPU汇编仿真软件。

它集成了文本编辑器、编译器、反编译器、仿真调试、虚拟设备和驱动器为一体,并具有在线使用指南,对于学习汇编语言的人是一个很有用的工具。

软件提供的实例中包含了几十种典型的程序代码,其中包括:数值计算、逻辑运算、屏幕显示、键盘输入、文件打印、马达控制、温度控制、交通灯控制等。

在软件提供的快速指南中提供了多种在线帮助工具,包括:文件索引、8086CUP指令使用指南、系统中断调用列表以及用法等。

用户可以通过该工具快速地掌握8086CPU指令体系和emu8086汇编真软件的使用。

1. 软件启动打开桌面上的EMU8086的图标,出现如图1.1所示的启动界面,可选择new,建立新的汇编语言程序,也可打开code examples读取示例程序。

微微机原理与接口技术实用教程2图 1.1 启动界面2. 新建文件单击图1.1中的“new”选项,建立新的汇编程序,软件弹出如图1.2所示对话框,选择代码的文本格式,共有4种模板。

图1.2 新建文本格式选择z COM 模板:适用于简单且不需分段的程序,所有内容均放在代码段中,程序代码默认从ORG 0100H 开始;z EXE 模板:适用于需分段的复杂程序,内容按代码段、数据段、堆栈段划分。

需要注意的是采用该模板时,用户不可将代码段人为地设置为ORG 0100H ,而应由编译器自动完成空间分配;z BIN 模板:二进制文件,适用于所有用户定义结构类型,一般不用,因为不能正确解释伪指令;z BOOT 模板:适用于在软盘中创建文件,数据段的段地址为07C0H 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档