Venom
exp: 12 |
Ребята, помогите плизззз решить 2 задачи из контрольной работы по программированию на асемблере! Пожайлуста! Это вопрос жизни и смерти, еле выпросил у препода взять работу домой! Ведь я в асме ваще не шарю! Тем более эти задачи я сделал, но не уверен в правильности решения. Вот они: --------------------------- 1). Осуществите трансляцию в 16-значный код следующей команды: mov byte ptr [bp][di][80],dl
2). Дезассемблируйте след. команду 80 BC 00 81 0D --------------------------- Вот мой вариант решения: 1). mov - 10001001 - 89 m/d 010 r/m - 01010001 - 51 Ответ: 89 51 -наверна неправильно...
2). 80 - 1000 0000 - and BC - 1011 1100 - cmp 00 - 0000 0000 - ???? 81 - 1000 0001 - ???? (может, 129?) 0D - 0000 1101 - ???? (13?) Ответ(как есть наугад): and cmp 129,[13+D16]
Здесь не надо писать никакую програму, просто перевести в другой код. Помогите, кто не равнодушен к чужому горю! А то этот старый пердун ваще не хочет ничего подсказывать...
ответить
|
верховный администратор exp: 489 |
26 мая 2006 22:24 | + 51 минута | Какое-то долбанутое у вас преподавание. Опкоды не учат, а смотрят в справочнике. Это у вас называется задачами? Вообще, я в ассемблере не разбираюсь, и помочь не могу.
ответить
|
бизнес-партнёр exp: 285 |
27 мая 2006 12:59 | + 14 часов 34 минуты | 2Venom: Как же ты учишься, если нихрена не шаришь? Странно, блин... Такие потом "специалисты"
ответить
|
FonBalrog
exp: 293 |
27 мая 2006 15:08 изм. 15:09 | + 2 часа 9 минут | Мне больше всего нравится, что их учат выполнять работу компилятора. ИМХО знать машинные коды нужно, но только в некоторых ситуациях, например, для "ручного" создания шулл-кода. Но в реальном программировании ИМХО такие задачи не возникают.
ответить
|
Venom
exp: 12 |
27 мая 2006 17:59 | + 2 часа 51 минута | Это вы нашему долбанутому преподу скажите, а не мне,бл!!! :0 Тем более я не програмист, это дерьмо мне нужно знать только для записи в журнале. З.Ы. Так что - никто не поможет? Ни справочников, ни хрена нета?
ответить
|
верховный администратор exp: 489 |
28 мая 2006 8:21 | + 14 часов 22 минуты | Я не понимаю, в чём сложность задания. У меня просто нет под рукой ассемблера, но если он есть, то ничто не помешает в первом задании набрать код и собрать его, после чего посмотреть, что получится. Во втором задании нужно собрать программу, в которой будут пять команд NOP, после чего заменить их на эти самые пять байт машинного кода и дизассемблировать.
ответить
|
Venom
exp: 12 |
28 мая 2006 15:04 | + 6 часов 42 минуты | Если бы так можно было сделать... (Хотя я так понял: написать код, компильнуть, потом просмотреть каким-то образом exe-файл? Но программа из одной строки mov.... работать не будет!!? Я наверно, ничерта не понимаю...) Кароч, посмотрю в книгу, мож там чё есть...
ответить
|
верховный администратор exp: 489 |
28 мая 2006 15:46 | + 42 минуты | Почему "если бы"? Это делается очень легко. За основу ты можешь взять какой-нибудь Hello World, переписанный из книжки. Вставь туда эту команду и окружи её чем-нибудь, что будет бросаться в глаза при просмотре машинного кода. Для этого хорошо подходят команды NOP (кажется, шестнадцатиричное 90). Exe-файл ты можешь легко просмотреть в двоичном редакторе (интегрирован в Visual C++).
ответить
|
Venom
exp: 12 |
28 мая 2006 23:55 | + 8 часов 9 минут | сПАСИБО , щас попробую... Один вопрос - что такое NOP и как окружать им команду? По возможности покажи на примере. Буду очень благодарен. З.Ы. А можно ли просмотреть ехе-файл в обычном редакторе - досовском, или встроенном в Total Commander?
ответить
|
верховный администратор exp: 489 |
29 мая 2006 8:52 | + 8 часов 56 минут | NOP - моя любимая команда. Она ничего не делает, но занимает в коде один байт. Просто собери код с таким фрагментом:
nop nop mov byte ptr [bp][di][80],dl nop nop
Потом просмотри готовый файл в каком-нибудь редакторе (я всегда пользуюсь проводником, поэтому не знаю, есть ли двоичный редактор в Total Commander). NOP выглядит как шестнадцатиричное 90, поэтому ты должен искать следующий фрагмент: "90 90 чего-нибудь 90 90". Вот это "чего-нибудь" и будет результатом компиляции твоей программы. А вообще можно было просто погонять программу под отладчиком, выполняющим дизассемблирование, и ты бы увидел соответствие машинного кода ассемблерному.
ответить
|
Venom
exp: 12 |
29 мая 2006 22:18 изм. 22:22 | + 13 часов 26 минут | Получилось! 90 90 88 53 50 90 90. Спасибо, Алексей, вот уж не ожидал, что найдутся действительно отзывчивые люди! Завтра несу на проверку, одно задание сделал, хоть и несколько нестандартно, т.е. уже тройка будет полюбому. Кстати, почему сначала говорил, что не разбираешся в асемблере? Шаришь даже лучше меня :)
ответить
|
верховный администратор exp: 489 |
29 мая 2006 22:38 | + 19 минут | Да это разве "шарю"? Прочитал два года назад треть книжки Юрова и всё. Да я просто не знал, что ты настолько не шаришь.
ответить
|
exp: 2 |
24 июля 2006 23:46 | + 56 дней 1 час | Чертежники кто поможет студентке? Как обозначается электрика на плане. Не могу найти в учебниках. Плиз!!!!
ответить
|
exp: 2 |
Неужели никто девушке не поможет?
ответить
|
бизнес-партнёр exp: 285 |
25 июля 2006 10:17 | + 10 часов 29 минут | Если б соображал кто... Да щас все в отпусках...
ответить
|
АлександрА |
12 октября 2007 18:21 | + 444 дня 8 часов | Докажите,что четырёхугольник АВСD с вершинами в точках А(-1;-2),В(2;-5),С(1;-2),D(-2;1) является параллелограммом.Является ли АВСD ромбом?прямоугольником?
ответить
|
володя |
16 декабря 2007 21:13 | + 65 дней 3 часа | у= квадратный корень из х в четвертой степени + 2х + 1
ответить
|
exp: 1 minsk |
21 декабря 2007 15:09 | + 4 дня 17 часов | Просто супер решать балки по сопромату с помощью программы Mobile Beam 1.4. на сайте можно скачать sopromat.org
ответить
|
Ренат |
26 декабря 2007 11:39 | + 4 дня 20 часов | очень рпи очень прошу решыть мне задачу по высшей математки у меня щас зачот будет очень прошу 1.Решыть систему методом Гауса x(1) + 2x(2) + x(3) = 6 4x(1) + 3x(2) - 2x(3) = -1 5x(1) + 4x(2) + x(3) = 6 2. Чи копланарні вектори a, b, c, якщо а = (3;1;0), b = (-5;-4;-5), c = (4;2;4) 3. Знайти відстань між паралельними прямими x-3y+5=0 4x-12y+1=0
Заметки x(1) - ето первый икс и единица вобщето находится внизу. y - ето игрик
ответить
|
Ренат |
26 декабря 2007 11:48 | + 9 минут | люди пожалуста хотябы второе и третье помогите потому что мне вилы
ответить
|