Вывести символы в обратном порядке в оперативной памяти - Assembler
Формулировка задачи:
Доброго времени суток,
Нужно написать програмный код в emu8086,который в оперативную память записывает: 1. название группы; 2. имя; 3. фамилию.
В коде программы название группы, имя и фамилия должны быть записаны в десятичной системе счисления.
В результате выполнения программы, должно получиться обратно записанные (прим.: Ivan -> navI) данные в переменных: gruppa, imia, famil. Если,допустим, я пишу: imia db 73,118,97,110,то выполнив код программа в памяти должна вывести: 110,97,118,73.
С первой частью я справился без проблем, а вот как сделать так, чтоб выводились в обратном порядке?
Да, и ещё почему-то ругается на - name "Pervaya rabota". Пишет,что неверная инструкция или неверные параметры.
Уже разобрался с этим.Ругалось в версии 3.5, а в 4.0.8 все хорошо.
name "Pervaya rabota" org 100h ret ;desiaticnaja sistema gruppa db 73,73,110,116,45,49,53,32 ;desiaticnaja sistema imia db 79,108,101,103,32 ;desiaticnaja sistema famil db 86,121,115,111,99,107,105,106,32
Решение задачи: «Вывести символы в обратном порядке в оперативной памяти»
textual
Листинг программы
name "nr2" org 100h jmp start _group db 082d, 097d, 109d, 109d, 115d, 116d, 101d, 105d, 110d ; 0x52, 0x61, 0x6d, 0x6d, 0x73, 0x74, 0x65, 0x69, 0x6e ; Rammstein _name db 073d, 118d, 097d, 110d ; 0x49, 0x76, 0x61, 0x6e ; Ivan _surname db 075d, 105d, 112d, 101d, 108d, 111d, 118d ; 0x4b, 0x69, 0x70, 0x65, 0x6c, 0x6f, 0x76 ; Kipelov _group_length = 9 _name_length = 4 _surname_length = 7 start: mov ax, _group_length add ax, _name_length add ax, _surname_length mov bx, 0 gloop: push word _group[bx] inc bx cmp bx, ax jnz gloop mov bx, 0 gpop: pop word _group[bx] inc bx cmp bx, ax jnz gpop mov _group[bx], "$" mov ah,09 mov dx,offset _group int 21h end: mov ax, 0 int 16h int 20h
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д