Задачка - Assembler

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

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

Всем привет. Вообщем дана програмка. По дефолту для mov и jmp стоит регистровый и базово индексный относительный способ адресации соответственно. Нужно сделать для mov - непосредственный, для jmp базово - индексный.
< 1 > title lab3.exe < 2 > code SEGMENT < 3 > assume cs:code, ds:code < 4 > start: mov ax,code < 5 > mov ds,ax < 6 > mov ah,9 < 7 > lea dx,a < 8 > int 21h < 9 > ;-----копирование байта ----------- < 10 > mov bx,offset a < 11 > mov si,0 < 12 > mov al,[bx+si+4] < 13 > mov a,al < 14 > ;-----переход---------------------- < 15 > mov bx,c < 16 > jmp bx < 17 > ;-----область данных--------------- < 18 > a db 'a',13,10,'$' < 19 > b db 'b',13,10,'$' < 20 > c dw $+2 < 21 > ;вывод нового значения а----------- < 22 > mov ah,9 < 23 > lea dx,a < 24 > int 21h < 25 > mov ax,4c00h < 26 > int 21h < 27 > code ENDS < 28 > end start
как я полагаю, мне необходимо подправить всего 2 строчки, 12 и 16. для mov тогда будет : <12> mov al, "число", но что за число там должно быть, мне не понятно. а для jmp я вообще не нашёл ничего. з.ы. ассемблер програмирую впервые, до этого только на паскале писал, и то на школьном уровне.

Решение задачи: «Задачка»

textual
Листинг программы
; masm dos com #
.model tiny
.code
org 100h
start:  mov ah,9    
    lea dx,a    
    int 21h 
    ;-----копирование байта -----------
    mov bx,offset a
    mov si,8
    mov al,a+4 ; mov - непосредственный
    mov a,al
    ;-----переход----------------------
    jmp word ptr [bx+si]    ;jmp базово - индексный. 
    ;-----область данных---------------
a   db  'a',13,10,'$'
b   db  'b',13,10,'$'
c_  dw  $+2 
    ;вывод нового значения а-----------
    mov ah,9
    lea dx,a    
    int 21h
    ret
end start

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


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

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

6   голосов , оценка 4.667 из 5