Декодировать команды и данные в соответствии с приведенным дампом сегмента кода и содержимым сегмента данных - Assembler

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

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

.8086 Декодировать команды и данные в соответствии с приведенным дампом сегмента кода и содержимым сегмента данных. Восстановить программный код на язык Ассемблера. Исходные данные: CS/ 0713h; IP/ 0000h; DS/0710h

RANDOM ACCESS MEMORY

Это похоже на саму программу 0713:0000 B8 10 07 8E D8 BE 00 00 4E B9 22 00 B0 20 46 38 0713:0010 04 E1 FB 83 F9 00 74 0F 8B D6 B4 09 CD 21 B4 01 0713:0020 CD 21 B8 00 4C CD 21 BA 22 00 EB EE 90 90 90 90 0713:0030 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0713:0040 F4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Это похоже на data segment 0710:0000 20 20 20 20 20 53 74 72 69 6E 67 20 77 69 74 68 0710:0010 20 6C 65 61 64 69 6E 67 20 62 6C 61 6E 6B 73 20 0710:0020 21 24 42 6C 61 6E 6B 20 73 74 72 69 6E 67 21 24 То что программа :
MOV AX, DATA
MOV DS, AX
MOV SI, 0h
DEC SI
MOV CX, 22h
MOV AL, 20h
@1:
INC SI
CMP [SI], AL
LOOP @1
CMP CX, 0
JE  @2
MOV DX, SI
@3:
MOV AH,09h
INT 21h
MOV AH, 01h
INT 21h
MOV AX,4c00
INT 21h
@2:
MOV DX,
JMP @3
А вот то что в DATA SEGMENT не знаю как декодировать
data segment
 
ends
 
stack segment
    dw   20  dup(0)
ends
 
code segment
start:
; set segment registers:
MOV AX, DATA
MOV DS, AX
MOV SI, 0h
DEC SI
MOV CX, 22h
MOV AL, 20h
@1:
INC SI
CMP [SI], AL
LOOP @1
CMP CX, 0
JE  @2
MOV DX, SI
@3:
MOV AH,09h
INT 21h
MOV AH, 01h
INT 21h
MOV AX,4c00h
INT 21h
@2:
MOV DX, 22h
JMP @3 
ends
 
end start
Код совподает а вот data segment проблем
Кароч сам сделал... МБ комуто пригодится или если кто то найдёт у меня ошибки хотя наврятле они будут)
data segment
pkey db "     String with leading blanks !$Blank string!$"
ends
code segment
start:
; set segment registers:
    MOV AX, DATA
    MOV DS, AX
    MOV SI, 0h
    DEC SI
    MOV CX, 22h
    MOV AL, 20h
@1:
    INC SI
    CMP [SI], AL
    LOOP @1
    CMP CX, 0
    JE  @2
    MOV DX, SI
@3:
    MOV AH,09h
    INT 21h
    MOV AH, 01h
    INT 21h
    MOV AX,4c00h
    INT 21h
@2:
    MOV DX, 22h
    JMP @3 
ends
 
end start
Только вот какой вопрос команда B9 22 00 - -- > MOV CX, (22h) или 22 в десятичной?

Решение задачи: «Декодировать команды и данные в соответствии с приведенным дампом сегмента кода и содержимым сегмента данных»

textual
Листинг программы
         String with leading blanks !$Blank string!$

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

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