Декодировать команды и данные в соответствии с приведенным дампом сегмента кода и содержимым сегмента данных - Assembler
Формулировка задачи:
.8086
Декодировать команды и данные в соответствии с приведенным дампом сегмента кода и содержимым сегмента данных. Восстановить программный код на язык Ассемблера.
Исходные данные: CS/ 0713h; IP/ 0000h; DS/0710h
А вот то что в DATA SEGMENT не знаю как декодировать
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 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!$