Загрузка...

Helppanite pzh

Thread in Reversing / Assembler created by cairs Apr 12, 2023. 255 views

  1. cairs
    cairs Topic starter Apr 12, 2023 224 Nov 14, 2018
    Написать программу перезаписи массива данных (значения элементов массива задаются студентом произвольно) начинающегося с адреса ADR1 и заканчивающегося адресом ADR2 (длина массива указана в задании) в ячейки памяти, начинающиеся с адреса ADR3 и заканчивающиеся адресом ADR4. При перезаписи элементов массива над ними необходимо выполнить операцию, указанную в задании. Результат операций записать в регистр В.

    Длина массива = 5.
    ADR1 = 1000.
    ADR2 = 1004.
    ADR3 = 1010.
    ADR4 = 1014.
    Операция ИСКЛ-ИЛИ-НЕ.

    Плачу три символических рубля на лолз.
     
  2. ChatGPT
    ChatGPT Apr 12, 2023 2250 Mar 14, 2023
    cairs, вот пример программы на языке ассемблера, которая перезаписывает массив данных с использованием операции ИСКЛ-ИЛИ-НЕ и записывает результат в регистр В:

    Code

    ORG 1000h ; начальный адрес массива данных

    DSEG ; сегмент данных
    ARRAY DB 1, 2, 3, 4, 5 ; массив данных
    RESULT DB ? ; результат операции

    CSEG ; сегмент кода
    START:
    MOV SI, ADR1 ; загрузка адреса начала массива данных
    MOV DI, ADR3 ; загрузка адреса начала ячеек памяти для записи результата
    MOV CX, LENGTH ; загрузка длины массива данных

    LOOP_START:
    MOV AL, [SI] ; загрузка значения элемента массива
    NOT AL ; инвертирование битов
    XOR AL, 0Fh ; применение операции ИСКЛ-ИЛИ-НЕ
    MOV [DI], AL ; запись результата в ячейку памяти
    INC SI ; переход к следующему элементу массива
    INC DI ; переход к следующей ячейке памяти для записи результата
    LOOP LOOP_START ; повторение цикла до конца массива

    MOV BX, RESULT ; загрузка адреса регистра В
    MOV AL, [BX] ; загрузка результата операции
    HLT ; завершение программы

    ADR1 DW 1000h ; адрес начала массива данных
    ADR2 DW 1004h ; адрес конца массива данных
    ADR3 DW 1010h ; адрес начала ячеек памяти для записи результата
    ADR4 DW 1014h ; адрес конца ячеек памяти для записи результата
    LENGTH DW 5 ; длина массива данных
    Программа загружает адрес начала массива данных в регистр SI, адрес начала ячеек памяти для записи результата в регистр DI и длину массива данных в регистр CX. Затем она перебирает все элементы массива, инвертирует их биты, применяет операцию ИСКЛ-ИЛИ-НЕ и записывает результат в ячейки памяти. Наконец, программа загружает результат операции в регистр В и завершается.
     
    1. View previous comments (1)
    2. ChatGPT
      cairs, вот код программы без комментариев:

      Code

      ORG 1000h

      DSEG
      ARRAY DB 1, 2, 3, 4, 5
      RESULT DB ?

      CSEG
      START:
      MOV SI, ADR1
      MOV DI, ADR3
      MOV CX, LENGTH

      LOOP_START:
      MOV AL, [SI]
      NOT AL
      XOR AL, 0Fh
      MOV [DI], AL
      INC SI
      INC DI
      LOOP LOOP_START

      MOV BX, RESULT
      MOV AL, [BX]
      HLT

      ADR1 DW 1000h
      ADR2 DW 1004h
      ADR3 DW 1010h
      ADR4 DW 1014h
      LENGTH DW 5
    3. attoru
      ChatGPT, ты такой умный нихуя себе
    4. cairs Topic starter
      attoru, нихуя не воркает
    5. View the next comments (1)
Loading...
Top