找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1785|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

這個C語言語句怎么轉(zhuǎn)成匯編,請高手幫解答下。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:264733 發(fā)表于 2020-3-14 11:18 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
while((p3.6=0)&&((time++)<500))          這個while停在這里判斷 兩個條件    ,  匯編中如果jnb p3.6 $這個就停在這里了,沒辦法加時間判斷。(C中也沒有用到定時器)    謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:264733 發(fā)表于 2020-3-14 11:18 | 只看該作者
while((p3.6==0)&&((time++)<500))
回復(fù)

使用道具 舉報

板凳
ID:401564 發(fā)表于 2020-3-14 15:30 | 只看該作者
只要你的程序可以正常編譯,在KEIL仿真一下,會有相應(yīng)的匯編代碼給你看的
回復(fù)

使用道具 舉報

地板
ID:264733 發(fā)表于 2020-3-14 20:39 | 只看該作者
Y_G_G 發(fā)表于 2020-3-14 15:30
只要你的程序可以正常編譯,在KEIL仿真一下,會有相應(yīng)的匯編代碼給你看的

好的  試一下看看 謝謝
回復(fù)

使用道具 舉報

5#
ID:264733 發(fā)表于 2020-3-17 12:20 | 只看該作者
Y_G_G 發(fā)表于 2020-3-14 15:30
只要你的程序可以正常編譯,在KEIL仿真一下,會有相應(yīng)的匯編代碼給你看的

請大神幫再看下  這個還是看不懂應(yīng)該怎么寫

999999999999.jpg (127.36 KB, 下載次數(shù): 110)

999999999999.jpg
回復(fù)

使用道具 舉報

6#
ID:264733 發(fā)表于 2020-3-17 12:22 | 只看該作者
請大神幫再看下 還是看不懂這個怎么轉(zhuǎn)的  關(guān)鍵是走不到那個11的位置

999999999999.jpg (127.36 KB, 下載次數(shù): 80)

999999999999.jpg
回復(fù)

使用道具 舉報

7#
ID:401564 發(fā)表于 2020-3-17 13:55 | 只看該作者
這樣我看不明白,你把C文件上傳,我試一下
回復(fù)

使用道具 舉報

8#
ID:697917 發(fā)表于 2020-3-17 15:08 | 只看該作者
比較90.0(應(yīng)該是p3.6引腳不為0)跳轉(zhuǎn)到00B3行,即下面3行處,不進行time清零操作
回復(fù)

使用道具 舉報

9#
ID:264733 發(fā)表于 2020-3-18 13:26 | 只看該作者
Y_G_G 發(fā)表于 2020-3-17 13:55
這樣我看不明白,你把C文件上傳,我試一下

你好幫看下謝謝
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uint v=0,time=0;
sbit key=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if((key==0)&&(time>40));  //如果按鍵時間超過2秒且鍵未釋放,變量+1
if(key==1)time=0;    //如果鍵釋放,時間復(fù)位
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
回復(fù)

使用道具 舉報

10#
ID:264733 發(fā)表于 2020-3-18 13:35 | 只看該作者
因為C每個人的寫法不一樣(自己感覺看起來沒有匯編的好,具有統(tǒng)一性)  所以想學匯編。 而被這個卡住了 沒有明白是這個語句用匯編是怎么寫的 所以請教大神幫解答下。
回復(fù)

使用道具 舉報

11#
ID:401564 發(fā)表于 2020-3-18 21:05 | 只看該作者
time++;
if((key==0)&&(time>40));  //如果按鍵時間超過2秒且鍵未釋放,變量+1
if(key==1)time=0;    //如果鍵釋放,時間復(fù)位

你這個是進入中斷之后,變量就先+1
后一個語句沒有作用,條件成不成立都是執(zhí)行下一條語句的

不要在函數(shù)外面聲明變量,這樣編譯器會生成一大堆無用的匯編代碼出來的
回復(fù)

使用道具 舉報

12#
ID:264733 發(fā)表于 2020-3-19 12:03 | 只看該作者
Y_G_G 發(fā)表于 2020-3-18 21:05
time++;
if((key==0)&&(time>40));  //如果按鍵時間超過2秒且鍵未釋放,變量+1
if(key==1)time=0;    // ...

你好  搞明白了,重新弄了一個  看清楚思路了 。  謝謝
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表