Пересылка в индексный регистр - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Прошу помочь с кодом, мне необходимо сделать след. действия:

1: переслать адрес блока данных SIM в индексный регистр 2: переслать 3-й элемент 2-й строки SIM в регистр 3: сложить 3-й элемент блока данных Z2 и var_2 4: логическое ИЛИ между переменной в памяти var_1 и константой 3Fh

На первом пункте выдает след. ошибку:

operand types do not match

На третьем:

illegal memory reference

.MODEL SMALL
.STACK 100h             
.DATA               
    var_1 DB 11000110b
    var_2 DW 9FFEh
    var_3 DW ?
    var_4 DB ?
    N_1 DD 0FF00FFEEh
    N_2 DD ?
    String DB 'Assembler', '$'
    M1 DB 7,9,28,46,39,31,20,25
    M2 DB 12,15,7,25,31,35,20,63
    Z1 DW 48,256,300,511,31,512
    Z2 DW 0EEh,99Fh,300h,51AAh
    SIM DB 'QWERTYUIOP'
        DB 'ЙЦУКЕНГШЩЗ'
        DB 'POIUYTREWQ'
 
.CODE
Start:
    mov AX, @DATA
    mov DS, AX
    xor AX, AX
    
    mov SI, 0                   ;задать индекс начального элемента масссива
    mov BX, 0                   ;задать индекс начального элемента строки
    mov DI, SIM [BX][SI]        ;переслать адрес блока данных SIM в индексный регистр
    mov AL, SIM [BX+10][SI+2]   ;переслать 3-й элемент 2-й строки SIM в регистр
    ADD Z2 [SI+2], var_2        ;сложить 3-й элемент блока данных Z2 и var_2
    OR var_1, 3Fh               ;логическое ИЛИ между переменной в памяти var_1 и константой 3Fh
    mov AH, 4Ch
    int 21h
END Start

Решение задачи: «Пересылка в индексный регистр»

textual
Листинг программы
        mov DI, word ptr SIM [BX][SI]

Объяснение кода листинга программы

  1. DI - это индексный регистр, который используется для обращения к элементам массива.
  2. SIM - это массив, к которому обращается DI.
  3. BX - это регистр, содержащий индекс первого элемента массива SIM.
  4. SI - это регистр, содержащий индекс второго элемента массива SIM.
  5. word ptr SIM [BX][SI] - это обращение к элементу массива SIM по индексам, содержащимся в регистрах BX и SI.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы