Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 8

Вывод строки символов в обратном порядке

12.06.2013, 00:31. Показов 5837. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
программа должна выводить зеркально отображенную строку, она работает только когда задаешь максимально низкую длину строку она не выдаер
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
;гр.А-8-10
;Л*бор*тор**я р*бот* №4 "Обр*ботк* строк "
;В*ри**т: № 16 Н*пис*ть прогр*мму, котор*я бы и*вертиров*л* (зерк*ль*о 
; отобр*ж*л*) исход*ую строку , Pascal-string  
;
.model small
.stack 100h
.data
    string  db  20,'myiaruN avokebzamlA'     ;м*ссив слов
    istring db $-string dup (?)
    str_len db  ?       ; переме***я для хр**е*ия дли*ы строки
.code
    mov ax,@data
    mov ds,ax           ;и*ици*лиз*ция ES
        mov si,offset string    ;уст**овк*  si ** **ч*ло string
    mov di,offset str_len
    dec di
    
    mov bx,[si]             ;сохр**е*ие дли*ы строки в п*мяти
    mov str_len,bl          
    mov cl,str_len          ;з*грузк* ее в cx
                        ;переход к первому элеме*ту строки
    inc si                
    cld         ;"просмотр строки вперед"
peresilka:
    lodsb           ; з*грузк* э-т* строки DS:SI -> AL
    mov [di],al     ; з*пис*ть этот элеме*т в [di]
    dec di
    loop peresilka      ; повторить СХ р*з
exit:   
    
        mov di,offset istring   ;з*пись з**че*ия дли*ы строки
        mov bl,str_len          ;
    mov istring[di],bl       ;
    mov cl,bl
vivod:
    mov ah,02h
    mov dl,[di]
    inc di
    int 21h
    loop vivod
    
 
    mov ah,4ch              ;выход в DOS
    int 21h                 ;
end
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2013, 00:31
Ответы с готовыми решениями:

Вывод символов строки в хаотичном порядке.
Всем доброго времени суток. Нужна помощь, в решение задачи по Assembler: Нужно сделать так, чтобы выводилась символы строки в хаотическом...

Вывод последовательности чисел в обратном порядке
Приветствую всех форумчан! Работая над контрольной работой зашел в тупик, поэтому прошу помощи. Задание следующее - ввести с клавы...

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

13
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
12.06.2013, 01:40
Ёб室*го бва®Єг
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 8
12.06.2013, 02:45  [ТС]
да, исходную строку
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
12.06.2013, 11:19
Цитата Сообщение от Нурайым Посмотреть сообщение
да, исходную строку
Хорошо бы этим шрифтом и комментарии к программе были, а то такая дичь из кракозяб, что глаз режет.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
12.06.2013, 11:27
Полный 30h,
это не "кракозябры", а Масковская фишка, специальный язык жителей нерезиновой
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
12.06.2013, 11:55

Не по теме:

Цитата Сообщение от Mikl___ Посмотреть сообщение
специальный язык жителей нерезиновой
С каких это пор масквачи прихватизировали CP866?


ВотЪ. масм.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
;гр.А-8-10
;Л*бор*тор**я р*бот* №4 "Обр*ботк* строк "
;В*ри**т: № 16 Н*пис*ть прогр*мму, котор*я бы и*вертиров*л* (зерк*ль*о
; отобр*ж*л*) исход*ую строку , Pascal-string
;
.model  small
.stack  100h
.data
string  db len,'В чащах юга жил-был цитрус. Да, но фальшивый экземпляр!0123456789',0Dh,0Ah;м*ссив слов
len = $ - string
.code
start:  mov ax,@data
    mov ds,ax           ;и*ици*лиз*ция ES
    mov si,offset string    ;уст**овк* si ** **ч*ло string
    lodsb
    cbw
    mov cx, ax
    dec cx
    push    cx
@@: lodsb
    int 29h
    loop    @B
    dec si
    pop cx
    std
@@: lodsb
    int 29h
    loop    @B
    cld
    xor ax,ax
    int 16h
 
 
    mov ah,4ch          ;выход в DOS
    int 21h         ;
    end start
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
12.06.2013, 12:11
Цитата Сообщение от Mikl___ Посмотреть сообщение
Полный 30h,
это не "кракозябры", а Масковская фишка, специальный язык жителей нерезиновой
Технический раздел олбанского - осамблерный?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
12.06.2013, 12:29
Цитата Сообщение от Полный 30h Посмотреть сообщение
олбанского
Скорее среднеазиатского, ибо
Цитата Сообщение от Нурайым Посмотреть сообщение
string db 20,'myiaruN avokebzamlA' ;м*ссив слов
переводится как
string db 20,'Алмазбекова Нурайым'
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
12.06.2013, 13:36
Charles Kludge, Мне на азиатов грех жаловаться, благодаря одному казаху, имени его не знаю, а точнее благодаря созданному им сайту asmworld.ru хоть как то начал углубляться в тему. А то так бы и буксовал с Калашниковым над Пироговым.
0
12.06.2013, 13:40

Не по теме:

Цитата Сообщение от Полный 30h Посмотреть сообщение
Мне на азиатов грех жаловаться
Ты бы с ними в армии послужил, особенно в Заполярье...:jokingly:

0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
12.06.2013, 13:48
Нурайым, Твоя прога, только на FASMe всё работает. Правда вывод строки я сделал не по символу, а сразу, для этого пришлось заменить в исходной строке знак пробела на знак окончания строки.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use16
org 100h
 
    mov si,string    ; адрес начала строки
    mov di,gnirts   ; адрес переменной начала перевёрнутой строки
    xor ch,ch        ; обнулить старшую полвину
    mov cl,[str_len] ;загрузить длинну строки (число знаков)
    add di,cx        ; получить адрес последнего знака перевёрнутой строки +1
    dec di           ; получить адрес последнего знака перевёрнутой строки
    
    
    cld         ;"просмотр строки вперед"
peresilka:
    lodsb           ; з*грузк* э-т* строки DS:SI -> AL
    mov [di],al     ; з*пис*ть этот элеме*т в [di]
    dec di          ; предыдущий адрес строки приёмника
    loop peresilka      ; повторить СХ раз
 
; вывод строки
    mov ah,9h ; Функция DOS 09H: Выдать строку до знака окончания строки "$"
    mov dx,gnirts   ; адрес начала перевёрнутой строки
    int 21h
 
    mov ah,4ch              ;выход в DOS
    int 21h                 ;
 
 
    string  db '$','myiaruN avokebzamlA'     ;массив слов начинающийся со знака окончания строки
    str_len db $-string  ; всегда думал что длиина строки при помощи " $-строка " определяется 
    ; таким выражением в следующей сразу за строкой переменной (в книжке какойто видел)
    gnirts db 0 dup (?)  ; string наоборот будет тут
Добавлено через 2 минуты
Цитата Сообщение от Charles Kludge Посмотреть сообщение

Не по теме:


Ты бы с ними в армии послужил, особенно в Заполярье...:jokingly:

Смоленск и Ставрополь, таджики. узбеки. казахи. даги. чечены. армяне, азеры, весь интернационал застал.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
13.06.2013, 04:43
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
; masm dos exe #
.model small
.stack 100h
.data
    string  db  'myiaruN avokebzamlA$'    
    lenstring = $-string-1
.code
start:  mov ax,@data
    mov ds,ax
    mov si,offset string          
    mov dx,si
    mov bx,lenstring
    mov cx,bx
    shr cx,1
a1: lodsb
    lea bx,[bx+0FFFEh]
    xchg al,[si+bx]
    mov [si-1],al
    loop a1
    mov ah,9
    int 21h
    mov ah,0
    int 16h
    mov ah,4Ch              
    int 21h                 
end start
1
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 8
13.06.2013, 12:26  [ТС]
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
;А-8-10
;обработка строк 
;программа , которая бы инвертировала (зеркально отображала) исходную строку, Pascal- String
.model small
.stack 100h
.data
    string  db  20,'myiaruN avokebzamlA'     ;массив слов
    istring db $-string dup (?)
    str_len db  ?       ; переменная для хранения длины строки
.code
    mov ax,@data
    mov ds,ax           ; инициализация  ES
        mov si,offset string    ;установка*si **на начало  string
    mov di,offset str_len
    dec di
    
    mov bx,[si]             ;сохранение длины строки в памяти 
    mov str_len,bl          
    mov cl,str_len          ;загрузка ее в cx
                        ;переход к первому элементу строки 
    inc si                
    cld         ;"просмотр строки вперед"
peresilka:
    lodsb           ; загрузка элемента строки  DS:SI -> AL
    mov [di],al     ;записать этот элемент в  [di]
    dec di
    loop peresilka      ;повторить СХ раз
exit:   
    
        mov di,offset istring   ;запись значения длины строки
        mov bl,str_len          ;
    mov istring[di],bl       ;
    mov cl,bl
vivod:
    mov ah,02h
    mov dl,[di]
    inc di
    int 21h
    loop vivod
    
 
    mov ah,4ch              ;выход в  DOS
    int 21h                 ;
end
когда длину строки вводишь например 5( вместо 20), по идее должна выводить на экран 5 последних символов , а именно (myiar=>) raiym.

Добавлено через 28 минут
я вижу тут идет бурное обсуждение совсем не по теме, я не буду ни с кем спорить, защищаться и уж тем белее поднимать тему про национализм, мне легче просто сказать, что каждый человек видит то, что хочет, и его окружение это и есть то, кем он сам является. Не знаю поняли ли Вы меня, но я за то чтобы каждый исправлял самого себя нежели искать в ком то недостатки.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
14.06.2013, 11:20
Нурайым,
как мудрая восточная женщина и не спорь, ни к чему...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
; masm dos exe #
.model small
.stack 100h
.data
    len dw 7
    string  db  'myiaruN avokebzamlA$'    
    lenstring = $-string-1
.code
start:  mov ax,@data
    mov ds,ax
    mov si,offset string          
    mov dx,si
    mov bx,len
    mov string[bx],'$'
    mov cx,bx
    shr cx,1
a1: lodsb
    lea bx,[bx+0FFFEh]
    xchg al,[si+bx]
    mov [si-1],al
    loop a1
    mov ah,9
    int 21h
    mov ah,0
    int 16h
    mov ah,4Ch              
    int 21h 
end start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2013, 11:20
Помогаю со студенческими работами здесь

В строке указанное количество символов, начиная с заданной позиции, переписать в обратном порядке
В строке указанное количество символов, начиная с заданной позиции, переписать в обратном порядке. Ребята, напишите пожалуста!

Ввод массива цифр и вывод его в обратном порядке
Здравствуйте. Задача состоит в том, что ввести массив цифр. Вывести его, а затем вывести на экран его же в обратном порядке. Проблемы...

Считать с клавиатуры 5 символов и вывести их в обратном порядке. Для реализации программы использовать организацию циклов
Помогите пожалуйста считать с клавиатуры 5 символов и вывести их в обратном порядке. Для реализации программы нужно использовать...

Переставить символы заданной строки в обратном порядке
Разработать подпрограмму, которая переставляет символы заданной строки в обратном порядке. Разработать программу, которая вводит с...

[NASM] Расположить символы строки в обратном порядке
Добрый день! На ассемблере NASM необходимо написать программу, которая при вводе строки будет изменять порядок символов на противоположный,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru