汇编语言hex
详细内容
篇一:《反汇编hex文件》
思路:原谅虫子买个关子,当看了就知道了
1.软材料
IDA5.0。下载地址:jtag最新固件,见附件
hexbin,见附件,(语法:hexbinfilename.hex[filename.bin])
stk500_M8源程序。(附件中有我移植好的减少代码的m16源程序)
2.硬材料,见附件电路图
好了,准备好了,开始做菜了:)
1)用ida打开固件,如下图:
点击此处下载ourdev_179161.rar(文件大小:100K)
到这步时用hexbin把hex转为bin文件,出现如下提示(不转也可以)
篇二:《汇编语言16进制转换为2进制》STACKSEGMENTSTACK'STACK'
STADB40DUP(?)STACKENDSDATASEGMENTFLAGDB0DATAENDSDECIMAL_TO_BIN_HEXSEGMENTASSUMECS:DECIMAL_TO_BIN_HEX,DS:DATASTART:MOVAX,DATAMOVDS,AXREPEAT:CALLDEC2BINCALLCRLFTESTFLAG,1JNZREPEAT
CALLBINCALLHEXCALLCRLFJMPREPEATDEC2BINPROEARMOVBX,0MOVFLAG,BLNEWCHAR:MOVAH,1INT21HCMPAL,3HJNZCONTINUEMOVAX,4C00HINT21HCONTINUE:SUBAL,30H
JLEXITCMPAL,9DJGEXITCBWXCHGAX,BXMOVCX,10DMULCXJCERRXCHGAX,BXADDBX,AXJCERRJMPNEWCHARERR:MOVFLAG,1EXIT:RETDEC2BINENDP;*******************************************;CRLFPROEARMOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HRET
;*******************************************;ONEPROEARROLBX,1MOVAL,BLANDAL,1ADDAL,30HMOVDL,ALMOVAL,2INT21HRETONEENDP;********************************************;BINPROEAR
MOVCX,10HROTATEL:CALLONELOOPROTATELCALLCRLFRETBINENDP;*********************************************;HEXPROEARMOVCH,4ROTATE3:MOVCL,4ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30H
CMPAL,3AHJLPRINTITADDAL,7HPRINTIT:MOVDL,ALMOVAH,2INT21HDEHJNZROTATE3CALLCRLFRETHEXENDP;*********************************************;DECIMAL_TO_BIN_HEXENDSENDSTART
data1db'inputthenumber(4bits):$';0-F之间任意四位的输入data2db'thebinarynumber:$'dataendscodesegmentassumecs:code,ds:datamainprocfarstart:movax,datamovds,axmovdx,offsetdata1movah,09hint21h
callcrlfmovbx,0movcx,4m1:movah,01hint21hcmpal,3ahjlm2subal,7hjmpm2m2:subal,30h
cbwxchgax,bxmovdx,16dmuldxxchgax,bxaddbx,axloopm1callcrlfmovdx,offsetdata2movah,09hint21hcallcrlf
movcx,16m3:testbx,8000hjnzm4movdl,'0'movah,02hint21hjmpm5m4:movdl,'l'movah,02hint21h
m5:shlbx,1
loopm3movah,4chint21hretmainendp
crlfproear;回车换行子程序movdl,0dhmovah,02hint21hmovdl,0ahmovah,02h
int21hretcrlfendpcodeendsendstart
篇三:《汇编语言16进制到10进制转换》DEC2HEXSEGMENT
xpDB0H
ASSUMECS:DEC2HEX
REPEAT:CALLDEC2BIN
CALLCRLF
CALLBIN2HEX
CALLCRLF
JMPREPEAT
DEC2BINPROEAR
XORBX,BX;bx=0
NEWCHAR:MOVAH,1;输入指令,存放在al
INT21H
SUBAL,30H
JLEXIT;小于,不是数字也不是字母
CMPAL,9
JGE222;大于9,为字母
JMPE333;小于9,为数字
E222:SUBAL,7H;将字母代表的值转化为10进制下的数值CMPAL,15
JGEXIT;大于十五,则不是16进制数,退出.
JMPE333;输入的是a到f,为16进制的数
E333:CBW;ah=00000000
XCHGAX,BX;ax=0000000000000000bx=000000000000****;bx存放先输入的值,即高位.
MOVCX,16;cx=00010000
MULCX;cx*ax,dx放高16位,ax放低16位(把ax左移4位);ax,bx互换,把之前的高位左移到更高位
XCHGAX,BX;换回来,bx还是用来存放高位
ADDBX,AX
JMPNEWCHAR
EXIT:RET
DEC2BINENDP{汇编语言hex}.
BIN2HEXPROEAR
MOVCX,BX;存放的16进制的值给cx
ROTATE:XORDX,DX;dx=0000000000000000
MOVAX,CX;
MOVBX,0AH
DIVBX;dx取余,ax取整
MOVCX,AX;取整的值给cx
ADDDL,30H
PUSHDX
INCXP
ANDCX,CX
JNEROTATE
PRINTIT:POPDX
DECXP
CMPDL,20H
JEPRINTIT;这两句似乎没有用MOVAH,2
INT21H
CMPXP,0
JNEPRINTIT
RET
BIN2HEXENDP
CRLFPROEARMOVDL,0DH;回车;MOVAH,2;输出字符,dlINT21H
MOVDL,0AH;换行MOVAH,2
INT21H
RET
CRLFENDP
DEC2HEXENDS{汇编语言hex}.{汇编语言hex}.
ENDREPEAT
篇四:《用keil生成hex文件》用keil生成hex文件
1、建立mcs51源文件,选择newproject建立管理项目{汇编语言hex}.
2、选择被仿真的51器件
3、建立源文件
输入汇编语言源程序
4、点击如图图标,对源程序进行编译、链接{汇编语言hex}.{汇编语言hex}.
在下面的图形中,会显示是否有语法错误,如有着调入源程序改正,如没有则可进行下一步,生成扩展名为“hex”的二进制文件。
5、生成“hex”文件
1)鼠标指向项目文件夹
2)压下鼠标右件,选择如图中的选项,进入
3)在下图中选择,“output”
将CreatHEXFile打勾建立“hex”文件,在NameofExecutable给可执行文件取名,在SelectFolderforObjects选择存放路径,然后确定。
4)点击图标再次进行汇编,汇编后即可得到扩展名为“hex”的可执行二进制文件