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

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

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

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

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

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

operand types do not match

На третьем:

illegal memory reference

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

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

textual
Листинг программы
  1.         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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы