jcst.net
当前位置:首页 >> 将一个简单的汇编语言呢转换成C语言程序 >>

将一个简单的汇编语言呢转换成C语言程序

#include<reg51.h>#define uchar unsigned charuchar disdat[8]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};main(){uchar a;while(1){P2=0xc0;while(!P3_3){a=0;if(P0_0){a=1;break;}if(P0_1){a=2;break;}if(P0_2){a=3;break;}if(P0_3){a=4;break;}if(P0_4

#include<reg52.h>typedef unsigned char u8;void main(void){ u8 xdata *xp; u8 i,c; u8 data *p; xp = 0x7f; *xp = 0x81; for(p = 0x3f,i = 15;i != 0;i --) { c = *p; p ++; xp = 0x7c; *xp = c; xp = 0x7f; *xp = 0x0e; *xp = 0x0f; do{ xp = 0x7e; c = *xp; c &= 0x01; }while(c != 0); }}

额,看了下,指令格式是 51的; 代码像是 反汇编的代码,或者新手写的命名太不规范了!转换到是可以转换的,汇编到c还是可以的,但是如果没价值的话就不要翻译了,直接写就好!工程逆向,比较费神!如果需要帮忙的话,我们可以相互交流!满意的话赞一个,呵呵

#include<reg51.h>#define uchar unsigned charvoid delay(){uchar i,j,k;for(i=0;i<10;i++)for(j=0;j<100;j++)for(k=0;k<120;k++);}main(){uchar dat=0xfe;while(1) { P2=dat; dat=(dat<<1)|0x01; if(dat==0xfe)dat=0xfe; delay(); }}

#include "stdio.h"#include "dos.h"void main(void){ char i; int io_addr; io_addr = 0x0210; for (i = 0; i < 16; i++) { outportb(io_addr, 0); if (inportb(io_addr) != 0) break; outportb(io_addr, 255); if (inportb(io_addr) != 255) break; io_addr++; } if (i == 16) printf("RIGHT\n"); else printf("ERROR\n");}在 TC 2.0 中调试通过.

帖子里面楼主给出的代码是加密代码下面的大牛给出的思路是解密思路我用c语言给你实现了这里用循环你应该明白,因为所有的加密和解密过程都是对每一个字符(字节)进行加密的,而每一个字节又是8位,具体的那个帖子里面的最佳答案写

将c语言程序转为汇编,有三种方法:1 读懂c语言的含义,并针对功能,用汇编书写.由于c语言是很接近底层的语言,大多数c语言语句,都有对应或类似功能的汇编代码段,将相同功能实现即可得到汇编程序.2 借助于编译软件,自动将c语言转为汇编代码.编译软件最终将c代码编译成二进制代码,而二进制代码与汇编是一一对应的,所以部分编译器也提供汇编输出功能.如gcc,要将a.c转为汇编程序a.s,只需要gcc a.c -o a.s -s即可.3 先将c语言编译成可执行文件,再利用反编译工具,将可执行文件转为汇编语言.说明: 2和3的方法本质相同,均会产生大量的冗余代码.

可以的 现在单片机也有C语言系统 X86的C语言还可以内嵌汇编,所以C语言可以完成汇编的工作,而且编程效率高,部门功能还可以用嵌入汇编完成

void cmd_handler(int cmd_num){int sub_cmd_handler_addr = cmd_num * 3;switch(cmd_num){case 0:{pm0_handler();break;}case 1:{pm1_handler();break;}case 2:{pm2_handler();break;}case 3:{pm3_handler();break;}case 4:{pm4_handler();break;}

目前的反编译软件,只存在将机器指令码反汇编成汇编代码,不存在将汇编代码反编译成C语言的,因为汇编代码是低级语言,最接近于机器码(具体可查看不同硬件平台的技术资料),每条汇编指令都对应一个固定的机器码,这样进行反汇编是可行的,而C语言属于高级语言,编译器没有能力将汇编语言翻译成C或更高级的语言.

网站首页 | 网站地图
All rights reserved Powered by www.jcst.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com