Giúp Dịch Code C Sang Asm - Dien Tu Viet Nam
Có thể bạn quan tâm
- Đăng ký hoặc đăng nhập
- Logging in... Ghi Nhớ? Ðăng Nhập Forgot password or user name? hoặc Đăng ký
- Log in with Facebook
- Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
- Bài viết
- Hoạt động gần đây
- Tìm kiếm
- Trang of 2
- Lọc
- Giờ All Time hôm nay Last Week Last Month
- Show All Discussions only Photos only Videos only Links only Polls only Events only
-
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
06-06-2012, 14:34 Bạn nào biết dịch từ C sang asm thì giúp mình nha, mình đang cần để làm đồ án. Thansk Đây là code C: #include<reg52.h> sbit DATA1 = P2^7; sbit SCK1 = P2^6; sbit LACH1 = P2^5; sbit set=P3^5; sbit up=P3^6; sbit down=P3^7; sbit sdi1 = P3^1; sbit str1 = P3^2; sbit clk1 = P3^0; unsigned char m1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; unsigned char m2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; unsigned char m3[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; unsigned char hour, minute, second,c; unsigned char ma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0}; unsigned char kt=0,a=0,i,k,x=0; bit set0=1,set1=1,up1=1,up0=1,down0=1,down1=1; sbit SCL = P1^0; sbit SDA = P1^1; void delay(){ unsigned char i; for (i = 0; i < 4; i++){}; } //----------------------------------------- void SCL_high(){ SCL = 1; delay(); } //------------------------------------------ void SCL_low(){ SCL = 0; delay(); } //------------------------------------------- void I2C_Start(){ SDA = 1; SCL = 1; SDA = 0; delay(); SCL = 0; SDA = 1; } //-------------------------------------------- void I2C_Stop(){ SDA = 0; SCL_high(); SDA = 1; } //---------------------------------------------- bit I2C_Write(unsigned char dat){ unsigned char i; bit outbit; for (i = 1; i <= 8; i++){ outbit=dat&0x80; SDA = outbit; dat = dat << 1; SCL_high(); SCL_low(); } SDA = 1; SCL_high(); outbit = SDA; SCL_low(); return(outbit); } //---------------------------------------------------- unsigned char I2C_Read(bit ack){ unsigned char i, dat; bit inbit; dat = 0; for(i=1;i<=8;i++) { SCL_high(); inbit = SDA; dat = dat << 1; dat = dat | inbit; SCL_low(); } if (ack) SDA = 0; else SDA = 1; SCL_high(); SCL = 0; SDA = 1; delay(); return(dat); } //------------------------------------------------------------- void rtc_write(unsigned char add, unsigned char dat){ I2C_Start(); I2C_Write(0xd0); I2C_Write(add); I2C_Write(((dat/10)<<4)|(dat%10)); I2C_Stop(); } unsigned char rtc_read(unsigned char add){ unsigned char dat; I2C_Start(); I2C_Write(0xd0); I2C_Write(add); I2C_Start(); I2C_Write(0xd1); dat = I2C_Read(0); I2C_Stop(); dat = (dat & 0x0f) + (dat>>4)*10; return (dat); } void writeds(){ rtc_write(0x00, second); rtc_write(0x01, minute); rtc_write(0x02, hour); } void readds() { if(kt==0) { if(a==1) {writeds();a=0; } second = rtc_read(0x00); minute = rtc_read(0x01); hour = rtc_read(0x02); } } void hienthi(unsigned char x) { unsigned int i,temp; for(i=0;i<8;i++) { temp=x; temp=temp&0x80; if(temp==0x80) DATA1=1; else DATA1=0; x*=2; SCK1=0; SCK1=1; } } void quetled() { if(kt==0) { hienthi(ma[second%10]); hienthi(ma[second/10]); hienthi(ma[minute%10]); hienthi(ma[minute/10]); hienthi(ma[hour%10]); hienthi(ma[hour/10]); LACH1=0; LACH1=1; } if(kt==1) { hienthi(0xff); hienthi(0xff); hienthi(0xff); hienthi(0xff); hienthi(ma[hour%10]); hienthi(ma[hour/10]); LACH1=0; LACH1=1; } if(kt==2) { hienthi(0xff); hienthi(0xff); hienthi(ma[minute%10]); hienthi(ma[minute/10]); hienthi(0xff); hienthi(0xff); LACH1=0; LACH1=1; } if(kt==3) { hienthi(ma[second%10]); hienthi(ma[second/10]); hienthi(0xff); hienthi(0xff); hienthi(0xff); hienthi(0xff); LACH1=0; LACH1=1; } } void ktphim() { set0=set1;set1=set; if((set0==1)&&(set1==0)) { kt++; if(kt>3)kt=0; } switch(kt) { case 0:break; case 1: { up0=up1;up1=up; a=1; if((up0==1)&&(up1==0)) { hour++; if(hour>23)hour=0; } down0=down1;down1=down; if((down0==1)&&(down1==0)) { hour--; if(hour==-1) hour=23; } break; } case 2: { up0=up1;up1=up; a=1; if((up0==1)&&(up1==0)) { minute++; if(minute>59) minute=0; } down0=down1;down1=down; if((down0==1)&&(down1==0)) { minute--; if(minute==-1) minute=59; } break; } case 3: { up0=up1;up1=up;a=1; if((up0==1)&&(up1==0)) { second++; if(second>59) second++; } down0=down1;down1=down; if((down0==1)&&(down1==0)) { second=0; } break; } } } void ghi_dich(unsigned char t1,unsigned char t2,unsigned char t3,unsigned char t4,unsigned char t5,unsigned char t6,unsigned char t7,unsigned char t8) {unsigned char i,Q; Q=t8; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } Q=t7; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } Q=t6; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } Q=t5; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } Q=t4; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } Q=t3; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } Q=t2; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } Q=t1; for(i=0;i<8;i++){sdi1=(Q&0x01)?1:0;clk1=1;clk1=0;Q >>=1; } str1=0; str1=1; } void sosanh(unsigned char gia_tri) {unsigned char k1,k2,k3; k1=0;k2=m1[gia_tri%8];k3=0xff; if((gia_tri>=0)&&(gia_tri<8)) ghi_dich(k2,k3,k3,k3,k3,k3,k3,k3); if((gia_tri>=8)&&(gia_tri<16)) ghi_dich(k1,k2,k3,k3,k3,k3,k3,k3); if((gia_tri>=16)&&(gia_tri<24))ghi_dich(k1,k1,k2,k 3,k3,k3,k3,k3); if((gia_tri>=24)&&(gia_tri<32))ghi_dich(k1,k1,k1,k 2,k3,k3,k3,k3); if((gia_tri>=32)&&(gia_tri<40))ghi_dich(k1,k1,k1,k 1,k2,k3,k3,k3); if((gia_tri>=40)&&(gia_tri<48))ghi_dich(k1,k1,k1,k 1,k1,k2,k3,k3); if((gia_tri>=48)&&(gia_tri<56))ghi_dich(k1,k1,k1,k 1,k1,k1,k2,k3); if((gia_tri>=56)&&(gia_tri<60))ghi_dich(k1,k1,k1,k 1,k1,k1,k1,k2); } void main() { I2C_Start(); I2C_Write(0xD0); I2C_Write(0x07); I2C_Write(0x10); I2C_Stop(); while(1) { ktphim(); readds(); quetled(); sosanh(second); } } Nhận vẽ mạch in ^_^ TEL: 0167 4500 365 Mail: Tags: NoneGiúp dịch code C sang asm
-
4rev Thành viên tích cực
- Tham gia: Jun 2009
- Bài viết: 253
- Share
-
Tweet
, nhớ sao viết vậy
). Sau đó bạn cứ F7, khi đó dung lượng code của bạn sẽ thấp hơn, code asm cũng dễ hiểu hơn vì nó đã được thiết lập là cố gắng nén cho dung lượng code thật nhỏ bằng cách dùng chương trình con (sub-routine). Có lẽ bạn biết đường vào phần Optimizer mà he, nếu ko thì google(onl tiệm nên ko có keil nên ko coi cụ thể đc
) Trong Keil C, code asm được dịch ra hơi khó nhìn ở chỗ tên của mấy chương trình con dùng để rẽ nhánh(sau mấy cái lệnh xJMP, djnz, cjne, jb,jnb...v.v... nói chung là lệnh rẽ nhánh), cho nên bạn ráng đọc rồi tìm vị trí mà nó muốn rẽ tới và sửa tên lại sao cho bạn dễ hiểu là đc(nếu cần). Hình như code này xử lý con DS1307 phải ko bạn! Comment
Gửi bài viết Huỷ bỏ -
binh_an_2012 Thành viên mới
- Tham gia: May 2012
- Bài viết: 17
- Share
-
Tweet
Comment
Gửi bài viết Huỷ bỏ -
kidteam Thành viên tích cực
- Tham gia: Nov 2010
- Bài viết: 1633
- Share
-
Tweet
Comment
Gửi bài viết Huỷ bỏ -
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
Comment
Gửi bài viết Huỷ bỏ -
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
, nhớ sao viết vậy
). Sau đó bạn cứ F7, khi đó dung lượng code của bạn sẽ thấp hơn, code asm cũng dễ hiểu hơn vì nó đã được thiết lập là cố gắng nén cho dung lượng code thật nhỏ bằng cách dùng chương trình con (sub-routine). Có lẽ bạn biết đường vào phần Optimizer mà he, nếu ko thì google(onl tiệm nên ko có keil nên ko coi cụ thể đc
) Trong Keil C, code asm được dịch ra hơi khó nhìn ở chỗ tên của mấy chương trình con dùng để rẽ nhánh(sau mấy cái lệnh xJMP, djnz, cjne, jb,jnb...v.v... nói chung là lệnh rẽ nhánh), cho nên bạn ráng đọc rồi tìm vị trí mà nó muốn rẽ tới và sửa tên lại sao cho bạn dễ hiểu là đc(nếu cần). Hình như code này xử lý con DS1307 phải ko bạn! -Mình không có phần mềm Keil C, mình vẫn chưa hiểu bạn có hình minh hoạ không. -Đúng rồi bạn code này là của đồng hồ số sử dụng 89 và DS1307 Nhận vẽ mạch in ^_^ TEL: 0167 4500 365 Mail: Comment
Gửi bài viết Huỷ bỏ -
4rev Thành viên tích cực
- Tham gia: Jun 2009
- Bài viết: 253
- Share
-
Tweet
(mình hum biết soft đó
) Keil C thì google có một nùi đó, có cr..k luôn. Bạn ko hiểu gì cứ copy đoạn ko hiểu cho vào google là có thôi!
Tui thấy cách của bạn binh_an_2012 có lý lắm đó
, nhưng chủ topic chỉ học ASM chứ chưa học C thì coi như pó tej phần "viết lưu đồ giải thuật theo code C" rùi
Thân! Comment
Gửi bài viết Huỷ bỏ -
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
(mình hum biết soft đó
) Keil C thì google có một nùi đó, có cr..k luôn. Bạn ko hiểu gì cứ copy đoạn ko hiểu cho vào google là có thôi!
Tui thấy cách của bạn binh_an_2012 có lý lắm đó
, nhưng chủ topic chỉ học ASM chứ chưa học C thì coi như pó tej phần "viết lưu đồ giải thuật theo code C" rùi
Thân! Bạn đọc được C không giúp mình viết lưu đồ giải thuật, thanks Nhận vẽ mạch in ^_^ TEL: 0167 4500 365 Mail: Comment
Gửi bài viết Huỷ bỏ -
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
Nhận vẽ mạch in ^_^ TEL: 0167 4500 365 Mail: Comment
Gửi bài viết Huỷ bỏ -
sang_dientu Thành viên tích cực
- Tham gia: Oct 2009
- Bài viết: 1563
- Share
-
Tweet
Comment
Gửi bài viết Huỷ bỏ -
4rev Thành viên tích cực
- Tham gia: Jun 2009
- Bài viết: 253
- Share
-
Tweet
Mà bạn có cái sơ đồ mạch ko, mình ko biết code này có phần cứng gì nên ko đảm bảo đc lưu đồ! Thân! Comment
Gửi bài viết Huỷ bỏ -
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
Comment
Gửi bài viết Huỷ bỏ -
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
Mà bạn có cái sơ đồ mạch ko, mình ko biết code này có phần cứng gì nên ko đảm bảo đc lưu đồ! Thân! Bạn giúp mình nha, thanks Nhận vẽ mạch in ^_^ TEL: 0167 4500 365 Mail:
Comment
Gửi bài viết Huỷ bỏ -
4rev Thành viên tích cực
- Tham gia: Jun 2009
- Bài viết: 253
- Share
-
Tweet
Comment
Gửi bài viết Huỷ bỏ -
minhthanh29 Thành viên tích cực
- Tham gia: Jul 2011
- Bài viết: 201
- Share
-
Tweet
Nhận vẽ mạch in ^_^ TEL: 0167 4500 365 Mail:
Comment
Gửi bài viết Huỷ bỏ
Bài viết mới nhất Collapse -
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây! bởi dinhthuong92 Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ. Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...
- Channel: Tâm tình dân kỹ thuật
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bác bởi bqviet Đơn giản thì có trải nghiệm này http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81 Chỉ phần cứng,...
- Channel: Điện tử công suất
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bác bởi Nexus 6P phức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
- Channel: Điện tử công suất
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bác bởi Nexus 6P cảm ơn bác nhiều nha, để e nghiên cứu
- Channel: Điện tử công suất
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây! bởi vi van pham kỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá. - Channel: Tâm tình dân kỹ thuật
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây! bởi dinhthuong92 Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
https://youtu.be - Channel: Tâm tình dân kỹ thuật
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây! bởi dinhthuong92 Chào bác, gần Tết công việc bác bận lắm phải không? Vâng mọi người đều thế cả. Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...
https://youtu.be - Channel: Tâm tình dân kỹ thuật
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bác bởi bqviet Cảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau https://www.instructables.com/DIY-1k...ge-Controller/
- Channel: Điện tử công suất
-
Có mạch sạc nlmt nào có mppt không các bác bởi Nexus 6P Như tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V) e cảm ơn
- Channel: Điện tử công suất
Từ khóa » Chuyển Code C Sang Assembly
-
Giúp đỡ Chuyển Code C Sang Assembly - Dạy Nhau Học
-
Mọi Người Giúp Em Chuyển đoạn Code C Này Sang Assembly Với
-
TextMeister 2.0.1.0 - Chuyển đổi Các Ngôn Ngữ Lập Trình
-
Chuyển Code C Sang Assembly - Cộng đồng C Việt
-
Compiler Explorer
-
Convert C/C++ Code To Assembly Language - GeeksforGeeks
-
Có Cách Nào Chuyển Từ Code C Sang Assembly Ko Mấy Thím
-
C Vs Assembly - Kipalog
-
Cần Phần Mềm Chuyển đổi Code Assembly Sang Code C
-
Chuyện Này Có Lẽ Là đơn Giản ....nhưng ... [Archive]
-
Biên Dịch Chương Trình Trong C
-
Biên Dịch Chương Trình Assembly Chạy Trên Môi Trường Hệ điều Hành ...
-
C To Assembly Compiler And Interpreter
-
Chuyển Từ ASM Sang Hex Một Cách đơn Giản