| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > в байте поменять местами биты |
| Автор: DrWeb 12.1.2009, 19:30 |
| Подзадачка: в байте поменять первые и последние 4 бита местами как это реализовать программно? Просто я шарю ток в php и C++,а асм изучаю из-за нужды в сдаче экзамена И еще вопросик: MOV cx, [BX + SX -2340] ADC ABC [BX+SI-35] CMP PTR [BX+SI-13] CMP DX,WORD PTR TVP[AD+DI+23h] - что тут происходит в этих командах? Помогите плиз |
| Автор: Akina 12.1.2009, 21:43 | ||
|
| Автор: Mikl_ 13.1.2009, 12:11 | ||||||
| DrWeb, как поменять -- зеркально? для обмена байтами в слове xchg al,ah (bl,bh или cl,ch или dl,dh) для обмена байтов в 32-разрядном регистре bswp
|
| Автор: DrWeb 13.1.2009, 12:58 | ||
| Akina, Mikl_, спасибо а вот к этим командам можете комменты поставить?
а старший и младший байты это как?а полубайты? |
| Автор: Akina 13.1.2009, 14:04 |
Запросто! Ко всем коммент один и тот же: Syntax Error. |
| Автор: DrWeb 13.1.2009, 14:21 | ||
а так? я так понимаю,что BX это базовый регистр, si - сегментный, а 2340 - это смещение?а разве можно писать -2340? |
| Автор: Mikl_ 14.1.2009, 04:41 | ||||
| DrWeb, MOV cx, ptr [BX + SX -2340] <-- две ошибки 1) SX - нет такого регистра, вероятно имеется в виду SI? 2) ptr без указания размерности не ставится, должно быть WORD PTR но в данном случае указан регистр CX так что WORD PTR здесь избыточен ADC ABC, ptr [BX+SI-35] <-- нельзя складывать память + память, можно пмять+регистр, регистр+регистр, память+число, регистр+число CMP DX,WORD PTR [BX+DI+23h] <-- в принципе допустимая инструкция, но без WORD PTR можно было обойтись
так как -2340=0FFFFF6DCh Либо ты совсем не открывал учебник, а учебники читать нужно читать вдумчиво и очень внимательно либо преподаватель проверяет вас на знание синтаксиса
старший байт младший байт | | \|/ \|/ AX = AH | AL старший полубайт младший полубайт | | \|/ \|/ AL = 85h= 1000 . 0101b |
| Автор: DrWeb 14.1.2009, 13:17 |
| Mikl_, спасибо за инфо.я сам вспомнил про все эти полубайты на экзамене и написал его.теперь буду в разделе красная книга вопросы задавать нет шоб преподавать нормальные языки: с++ и php - нет блин.фигню всякую преподают:( |
| Автор: Mikl_ 14.1.2009, 13:40 |
| DrWeb, нельзя всю жизнь читать одну и туже книгу, даже если это книга "Библия". Учи больше разных языков -- в каждом своя прелесть, тогда и на С/С++/C# и на php посмотришь другими глазами |