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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2012, 21:25   #1
dima_V
Новичок
Джуниор
 
Регистрация: 17.12.2012
Сообщений: 1
По умолчанию

Здравствуйте, помогите , пожалуйста, разобраться с проблемкой.

Программа на ассемблере, которая выводит соседние символы заданного нами символа (первый и последний символ -- соседние). Нужно сделать вставкой в C. Не могу сделать вывод через C, получается только в виде dword'a . Подскажите как сделать нормальный вывод
Код:


#include "iostream"
#include "conio.h"
 
using namespace std;
 
typedef unsigned long DWORD; //4bytes
 
void main()
{
char symbol;
char string[255];
DWORD result;
int leng;
setlocale(0,"RUS");
printf("%s","Введите строку: "); //"%s-строка символов
gets(string); //вводим строку в которой искать
leng=strlen(string);
printf("%s","Введите искомый символ:\t");
symbol=getchar();
 
_asm
{
lea esi,string
mov bl,symbol
mov edi,leng
 
_go2:
mov al,[esi] ; запишем первый символ строки после последнего
mov [esi+edi],al
mov al,[esi+edi-1]
mov [esi-1],al ; а последний - после первого
 
mov ecx,edi ; длину строки - в счётчик
xor edi,edi ; здесь будем считать соседей
 
_go:
lodsb
cmp bl,al
jne _one
 
push ecx
push eax
mov eax,[esi-2] ; если найден символ, равный заданному
and eax,0ffffffh ; записываем в eax четыре символа строки
mov result,eax ; лишний обнуляем и запсываем в переменную
}
 
char dword[256];
sprintf(dword, "%u", dword);
printf("%u",dword);
 
_asm
{
 
pop eax
pop ecx
inc edi ; увеличиваем счётчик соседей
_one: ; продолжаем цикл
loop _go
 
test edi,edi
jnz _ex
 
_ex:
}
 
getch();
return;
 
}
посоветуйте хоть что-нибудь(

Последний раз редактировалось Stilet; 17.12.2012 в 23:08.
dima_V вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В строке символов найти количество вхождений заданного символа Алексей_2012 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 19.08.2012 15:54
Найти номер первой пары соседних элементов с разными знаками, сумма которых меньше заданного числа sofiya Помощь студентам 4 20.02.2011 23:05
Определить первое слово, начинающееся с заданного символа. Нездешний Помощь студентам 11 18.10.2009 16:51
Определения частоты пары соседних символов в каждой строке и формирования файла частот построчно ивт Паскаль, Turbo Pascal, PascalABC.NET 11 07.12.2008 20:52
Определения частоты пары соседних символов в каждой строке и формирования файла частот построчно ивт Паскаль, Turbo Pascal, PascalABC.NET 0 05.12.2008 20:09