Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2008, 07:49   #1
Nikolai_90
 
Регистрация: 30.05.2008
Сообщений: 7
По умолчанию вывести строку задом-наперёд (assembler)

Как вывести строку символов, которую я ввожу на экран задом-наперед?
Код:
Stacksg        Segment         stack    
                  dw              12 dup(?)   
Stacksg       ends           
Datasg        segment   
buf             db                12 dup('?')   
ll                db              12 dup('$ ')   
namelen      label                byte  
maxlen       db                   12  
len            db                 ?   
lenfld         db                 12 dup(' $')   
Datasg       ends       
Codesg      segment   
Begin         proc                far   
             Assume  ss:stacksg,cs:codesg,ds:datasg   
             Push    ds   
             Sub     ax,ax   
             Push    ax   
             mov     ax,datasg      
             mov     ds,ax   
    
             mov     ax,0600h   
             mov     bh,07  
             mov     cx,0000  
             mov     dx,184fh   
             int     10h   
  
             mov     ah,02  
             mov     bh,00  
             mov     dh,10  
             mov     dl,30  
             int     10h   
    
             mov     ah,0Ah   
             lea     dx,namelen   
             int     21h   
  
             sub     dx,dx   
             lea     si,lenfld   
             mov     cx,12  
             mov     al,' '  
m1:   
             mov     ah,[si]   
             cmp     ah,al   
             jnz     m2   
             inc     dl   
  
m2:   
             inc     si   
             loop    m1   
             mov     al,dl   
  
      cmp     al,0  
       
             mov     ah,02  
             mov     bh,00  
             mov     dh,11  
             mov     dl,30  
             int     10h   
    
             mov     ah,09h   
             lea     dx,lenfld
             int     21h   
                      
             ret        
begin        endp   
Codesg       ends   
             end     begin

Последний раз редактировалось rpy3uH; 03.06.2008 в 11:29.
Nikolai_90 вне форума Ответить с цитированием
Старый 03.06.2008, 08:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не поняв я чет, ты не можеш строку перевернуть или вывод на экран?
Цитата:
lenfld db 12 dup(' $')
э-э-э пробел то не мешает? Вроде как не нужен

P.S. Тыбы... Это... посмотрел что я тебе писал, и не кросспостил бы. Ато ведь закроют тему то.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вывести число qwerty34 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 25.08.2008 14:14
Вывести код программы Mr.Crowley Общие вопросы Delphi 5 11.06.2008 19:08
[assembler] вывести слова в кот-ых есть erv Mariaaa Помощь студентам 1 12.11.2007 15:04
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45
Вывести конкретную строку из файла Captain Nemo Общие вопросы Delphi 9 15.05.2007 03:44