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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2014, 20:29   #1
Riven7
Пользователь
 
Регистрация: 30.10.2014
Сообщений: 10
По умолчанию В заданой строке с нулевым завершителем поменять символы каждой пары местами

Помогите исправить код или составить алгоритм.
Этот выдает ошибки.

Код:
.386 
.model flat,stdcall 
.data 
string db "0123456789abcdefghjrowommfwmf",0 
.code 
start: 
lea esi,string 
mov ecx,0ffffffffh 
lop: 
lodsw ;получаем два символа строки (два байта) приэтом esi увеличивается на 2 
cmp ax,0 ; проверяем конец строки.. . если ноль закругляемся.. . 
je FINISH 
ror ax,8 ;меняем местами 
mov ds:[esi-2],ax : записываем обратно 
loop lop ; повтор 
FINISH: 
ret 
end start
Riven7 вне форума Ответить с цитированием
Старый 31.10.2014, 04:31   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Riven7,
Код:
; masm windows gui #
.386 
.model flat,stdcall
option casemap:none
include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
includelib C:\masm32\lib\kernel32.lib 
.data 
string db "0123456789abcdefghjrowommfwmf",0 
.code 
start:	lea esi,string 
	or ecx,-1
lop:	lodsw ;получаем два символа строки (два байта) при этом esi увеличивается на 2 
	test ah,ah ; проверяем конец строки.. . если ноль - закругляемся.. . 
	jz FINISH 
	test al,al
	jz FINISH
	ror ax,8 ;меняем местами 
	mov [esi-2],ax ; записываем обратно 
	loop lop ; повтор 
FINISH: invoke MessageBox,0,addr string,0,MB_OK
	invoke ExitProcess,0
end start
Mikl___ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять символы местами [JS] Freesty1er JavaScript, Ajax 15 30.12.2013 23:24
В каждой строке поменять первый и наибольший элемент местами vlad1kT Помощь студентам 0 16.06.2013 10:51
в строке поменять 1 и последнее слово местами. Программа есть только нужно сделать всё в 1 строке lect111 Паскаль, Turbo Pascal, PascalABC.NET 0 04.12.2012 15:47
В каждой строке матрицы А(n*n) найти наибольший и наименьший элементы матрицы и поменять их местами saha1994 Паскаль, Turbo Pascal, PascalABC.NET 2 15.05.2012 20:38
поменять местами символы warca Паскаль, Turbo Pascal, PascalABC.NET 5 24.01.2012 22:59