Сколько байт в памяти занимают команды? - Assembler

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

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

Помогите люди добрые ответить на 4 вопроса! С ассемблером дела не имел. Была только одна лекция, учусь на заочке. 1. Сколько байт в памяти занимает команда передачи данных MOV? 2. Сколько байт в памяти занимает команда выхода из процедуры RET? 3. Сколько байт в памяти занимает весь сегмент кода? 4. Сколько байт в памяти занимает директива процедуры ENDP? Файл листинга:
Turbo Assembler  Version 4.1        11/07/12 12:40:29       Page 1
com.asm
      1 0000                 codesg  SEGMENT PARA 'Code'
      2                    ASSUME  CS:codesg,DS:codesg, SS:codesg, ES:nothing
      3                    ORG     100H
      4 0100  EB 05 90             begin: JMP main
      5                  ;-------------------------------------------------------------
      6 0103  01 02 03 04          flddb  DB     1, 2, 3, 4
      7                  ;-------------------------------------------------------------
      8 0107                   main   PROC NEAR
      9 0107  8A 26 0103r        MOV    AH,byte ptr flddb
     10 010B  32 F6          XOR    DH,DH
     11 010D  C3             RET
     12 010E                   main   ENDP
     13 010E                 codesg  ENDS
     14                  END     begin
 
Turbo Assembler  Version 4.1        11/07/12 12:40:29       Page 2
Symbol Table
 
Symbol Name           Type   Value
 
??DATE                Text   "11/07/12"
??FILENAME            Text   "com     "
??TIME                Text   "12:40:29"
??VERSION             Number 040A
@CPU                  Text   0101H
@CURSEG               Text   CODESG
@FILENAME             Text   COM
@WORDSIZE             Text   2
BEGIN                 Near   CODESG:0100
FLDDB                 Byte   CODESG:0103
MAIN                  Near   CODESG:0107
 
Groups & Segments         Bit Size Align  Combine Class
 
CODESG                16  010E Para   none    CODE

Решение задачи: «Сколько байт в памяти занимают команды?»

textual
Листинг программы
9 0107  8A 26 0103r        MOV    AH,byte ptr flddb

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

  1. 0107 - адрес, где находится текущая команда в памяти
  2. 8A - опкод команды, который указывает процессору, какую операцию нужно выполнить
  3. 26 - модификатор команды, в данном случае, он указывает на размер операнда
  4. 0103 - адрес операнда в памяти, в данном случае, это адрес переменной flddb
  5. MOV - инструкция, которая перемещает значение из одного места памяти в другое
  6. AH - регистр общего назначения
  7. byte ptr - указатель на размер операнда (в данном случае, это байтовый размер)
  8. flddb - переменная, значение которой перемещается в регистр AH через указатель byte ptr

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


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

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

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