• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Assembler - Help!

  • Автор темы Tumbus
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

Tumbus

Кто-нибудь может помочь написать знаковое деление в формате 32:16?
 
G

Guest

тут возникли проблемы с программами.

Собственно вот 2 штуки

1. Определить, содержит ли байт данных в кодовом сегменте в разрядах 6-2 двоичную комбинацию 11010. Если да, то сформировать код в регистре ВН следующим образом : сумма тетрад исходного байта, если значение старшейй тетрады больше младшей, разность тетрад в противном случае.
Если полученный в ВН код меньше 40, инвертировать его.

2. В области кодового сегмента размещен массив двухбайтных данных. Данные, значения которых находятся в интервале от -20 до 20 заменить на противоположные по знаку и в однобайтном формате записать в другую область.

Все проги односегментные, т.к. потом надо делать .сом

Вот мои соображения:

Код:
.386
preved segment use32 
 assume cs:preved
       org 100h
M1: mov ax,preved
 mov cs,ax
   mov al,ds:[a]
   and al,01111100b
   cmp al,01101000b
   jne M2
   mov al,ds:[a]
   mov ah,al
   ror ah,4
   and ax, 0000111100001111b
   cmp ah,al
   jl M3
   add ah,al
   mov bh,ah
M3: sub ah,al
   mov bh,ah
M2: cmp bh,40
   jge M4
   not bh
M4: int 20h
   a db (?)
preved ends
   end M1

и вторая

Код:
.386
preved segment use32
assume cs:preved
Org 100h
M1: mov ax,preved
 mov cs,ax
  mov cs,ax
  mov CX,10
  mov SI,0
  mov DI,0
M2: cmp cs:[mass+SI],-20
  jg M3
  inc SI
  inc SI
  jmp M5
M3: cmp cs:[mass+SI],20
  jl M4
  inc SI
  inc SI
  jmp M5
M4: neg cs:[mass+SI]
  mov al,cs:[mass+SI]
  mov cs:[mass2+DI]
  inc DI
M5: loop M2
  int 20h 
mass dw 10 dup (?)
mass2 db 10 dup (?)
preved ends
  end M1

B)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!