=()= / Говнокод #24491 Ссылка на оригинал

0

  1. 1
SADASD

Запостил: kezzyhko kezzyhko, (Updated )

Комментарии (20) RSS

    • Бывает...

      Удаление через письмо админу.
      Ответить
  • Я вижу:
    push bx
    inc cx
    inc sp
    inc cx
    push bx
    inc sp
    По-моему, это уже диагноз...
    Ответить
          • Что будет если попнуть, когда sp = ffffh? В досбоксе после "pop ax" sp = 1, ax = 0, а я думал, там будет cd00h.
            Ответить
            • Память же не зацикливается. Он выдернет один байт из следующего сегмента.
              Ответить
      • Это чепуха. В 8088/8086 была инструкция POP CS (опкод 0Fh). Вот это было по-настоящему страшно.

        В следующих моделях POP CS убрали, а 0Fh приспособили как префикс для ввода новых опкодов.
        Ответить
      • Кстати, через dec sp компиляторы выделяют место под локальные переменные функций, а потом чистят вилкой inc sp или mov sp, bp (leave).
        Ответить
        • P.S. Ну ладно, не через dec/inc, а через sub/add, но идея, надеюсь, понятна.
          Ответить
    • push bx
      ...
      inc sp

      Удаляем из стека один байт, значит, содержимое bl теряется, от bx остаётся только содержимое bh. Фактически получился сдвиг на 8 бит вправо (если перед этим в стеке лежал ноль).
      Ответить
  • Капчу тоже мисскликнул?
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8