Вывести символы в обратном порядке в оперативной памяти - 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

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


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

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

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