كيفية تدوير لليسار؟

C

creative_35

Guest
مرحبا أصدقاء ،
أنا جديدة في قانون الأحوال المدنية جيم
الخلط abt تناوب 16 بت مع تحمل قيمة ،
في حين استعمل "بيانات بيانات = <<1" للقيادة ، ولكن مع الدورية تقوم بها ،
وإذا كنت استخدم "rotate_left (& بيانات (1) ،" انه فقط بالتناوب مع أول 8 بت تنفيذ ،
ماذا تفعل تناوب 16 بت مع تنفيذ؟
الرجاء مساعدتي.

 
جرب هذا :
الرمز :

غير موقعة int rotateleft (int بيانات غير موقعة) (

تشار تنفيذ ؛

حمل البيانات = & 0x7FFF ؛

بيانات بيانات = <<1 ؛

إذا كان (حمل) بيانات = 1 ؛

عودة البيانات ؛

)
 
شكرا لردكم budhy ،16 بت (2X8bit) يمكن أن تكون مجرد تناوب مع تحمل في التجمع ، واثنين فقط الأوامر.
آر ال اف DATA1 و
آر ال اف DATA2 و
اعتقدت ينبغي أن تكون هناك وسائل بسيطة في سوبر جيم
الآن فهمت جيم ليست مرنة كما التجمع.

هل أنا على حق؟

 
جيم الموافقة المسبقة عن علم في البرنامج ، أن يكون حسن السلوك بعض الأحيان كنت بحاجة لكتابة بعض rotines في التجميع ، والسبب الجامع للموافقة المسبقة عن علم ليست easey يكون حصل جيم من البرامج.
ولكن اذا كنت تريد استخدام برنامج جيم فقط يمكنك استخدام هذا أيضا :

بيانات = (البيانات>> 15) | بيانات <<1 ؛

استعمل MSP430 ، والتجميع متوافق مع جيم Asnsi ، وجيم جدا ، ولكن ليس للموافقة المسبقة عن علم ، وتسبب هذا الخط "بيانات = (البيانات>> 15) | بيانات <<1" سيولد كبير asm البرنامج ويمكنك جعل استخدام 2 asm instrunctions فقط.

في الماضي كنت الموافقة المسبقة عن علم كبير ، والموافقة المسبقة عن علم لا suport 16 بت متغير مثل غيرها من 8 بت microcontrollers (8051 على سبيل المثال).أنا allways استخدام 8 بت.axample لاستخدامها
int8 data_l ، datah
وليس
int16 البيانات

وسوف أكتب لك المزيد من الخطوط في الشفرة ولكن حجم تجميع البرامج سيتم تخفيض..

creative_35 كتب :

شكرا لردكم budhy ،16 بت (2X8bit) يمكن أن تكون مجرد تناوب مع تحمل في التجمع ، واثنين فقط الأوامر.

آر ال اف DATA1 و

آر ال اف DATA2 و

اعتقدت ينبغي أن تكون هناك وسائل بسيطة في سوبر جيم

الآن فهمت جيم ليست مرنة كما التجمع.هل أنا على حق؟
 

Welcome to EDABoard.com

Sponsor

Back
Top