找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4016|回复: 10
收起左侧

怎么把c语言的程序变成汇编的程序

[复制链接]
ID:216620 发表于 2017-7-5 13:15 | 显示全部楼层 |阅读模式
#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int


sbit RED_1=P0^0; //东西向灯

sbit YELLOW_1=P0^1;

sbit GREEN_1=P0^2;

sbit RED_2=P0^3; //南北向灯

sbit YELLOW_2=P0^4;

sbit GREEN_2=P0^5;

uchar number=0,type=1; //闪烁次数,操作类型变量

//延时子程序

void Delay(uint x)

{

uchar i;

while(x--) for(i=0;i<120;i++);

}

//交通灯切换程序

//总共分为四种情况,如此循环

//注:1为关灯,0为开灯

traffic()

{

switch(type)

{

case 1: //东西向绿灯与南北向红灯亮5秒

RED_1=1;YELLOW_1=1;GREEN_1=0;

RED_2=0;YELLOW_2=1;GREEN_2=1;

Delay(5000);

type=1;

break;

case 2: //东西向、南北向黄灯闪烁2秒

Delay(500);

YELLOW_1=~YELLOW_1;GREEN_1=1;
YELLOW_2=~YELLOW_2;RED_2=1;

if(++number!=4) return; //闪烁2次

number=0;

type=2;

break;

case 3: //东西向红灯,南北向绿灯亮

RED_1=0;YELLOW_1=1;GREEN_1=1;

RED_2=1;YELLOW_2=1;GREEN_2=0;

Delay(5000);

type=3;

break;



}

}


void main()

{

while(1) traffic();

}


回复

使用道具 举报

ID:217369 发表于 2017-7-5 15:07 | 显示全部楼层
给你这个

新建文件夹.zip

1.17 MB, 下载次数: 18

回复

使用道具 举报

ID:217369 发表于 2017-7-5 15:10 | 显示全部楼层
给你这个,可以转换各种语言

新建文件夹.zip

1.17 MB, 下载次数: 17

回复

使用道具 举报

ID:7485 发表于 2017-7-5 15:10 | 显示全部楼层
为什么要变成汇编指令呢?如果你能熟练掌握汇编,自己根据c程序改写应该没问题。如果不熟悉汇编,改了看不明白也没多大用。

另外想说的,用c语言通过keil汇编的那个不行,差的太远,想学习汇编不能用这个。你就看看一个延时程序就会明白。
回复

使用道具 举报

ID:204558 发表于 2017-7-5 15:37 | 显示全部楼层
你这个不可能自动转成汇编的  自己学一下51的指令集吧
回复

使用道具 举报

ID:217384 发表于 2017-7-5 15:42 | 显示全部楼层
先编译成程序然后反编译成汇编语言
回复

使用道具 举报

ID:190832 发表于 2017-7-5 16:33 | 显示全部楼层
网站主页不是有51汇编教程吗???
回复

使用道具 举报

ID:217420 发表于 2017-7-5 17:09 | 显示全部楼层
有许多c编译成汇编的软件
回复

使用道具 举报

ID:217433 发表于 2017-7-5 17:42 | 显示全部楼层
目前汇编不怎么用了吧,都在用C语言编写,你是在弄论文吗?必须要转汇编?
回复

使用道具 举报

ID:217513 发表于 2017-7-6 00:20 | 显示全部楼层
用keilc51软件点击ctrl+f5即可
回复

使用道具 举报

ID:123289 发表于 2017-7-6 01:22 | 显示全部楼层
最简单:不用改!
C原本就必须将其转成汇编的,在文档中找一下。
退一万步说,将其它运行代码反汇编一下也可以。不过极难读懂。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表