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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2012, 17:23   #11
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

RazerVG, никакого. Вы в отладчике посмотрите, что к чему. Int 3 в код вставьте.
vadimych вне форума Ответить с цитированием
Старый 28.12.2012, 04:17   #12
RazerVG
Пользователь
 
Регистрация: 27.12.2012
Сообщений: 15
По умолчанию

а как тогда сделать посимвольный ввод . Чтобы мы написали символ он занесся в регистр написали второй он сделал тоже самое итд?
RazerVG вне форума Ответить с цитированием
Старый 28.12.2012, 04:20   #13
RazerVG
Пользователь
 
Регистрация: 27.12.2012
Сообщений: 15
По умолчанию

То есть вопрос состоит в том : мы нажимаем а в какой регистр это значение заноситься для вывода на экран с эхом?
RazerVG вне форума Ответить с цитированием
Старый 28.12.2012, 09:28   #14
RazerVG
Пользователь
 
Регистрация: 27.12.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от vadimych Посмотреть сообщение
RazerVG, никакого. Вы в отладчике посмотрите, что к чему. Int 3 в код вставьте.
call ds:scanf значение сканируемое этой функцией куда заносится?
RazerVG вне форума Ответить с цитированием
Старый 28.12.2012, 16:13   #15
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

RazerVG, Вам вообще что конкретно надо? По поводу что-куда - смотрите в отладчике. В ollydbg всё хорошо видно. По поводу как сделать посимвольный ввод - в справке msdn.
vadimych вне форума Ответить с цитированием
Старый 29.12.2012, 10:02   #16
RazerVG
Пользователь
 
Регистрация: 27.12.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от vadimych Посмотреть сообщение
RazerVG, Вам вообще что конкретно надо? По поводу что-куда - смотрите в отладчике. В ollydbg всё хорошо видно. По поводу как сделать посимвольный ввод - в справке msdn.
cmp x,';'
jz end - почему ошибка?

мне нужно при вводе символа a прекратить ввод

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
char x[256];
char* fmt = "%s";
_asm
{
start:

lea ebx, x
push ebx
push fmt
call ds:scanf
cmp x,'a'
jz end
add esp, 8;
jmp start


end:
push ebx
push fmt
call dsrintf;
add esp, 8;
}
return 0;
}
RazerVG вне форума Ответить с цитированием
Старый 29.12.2012, 10:13   #17
RazerVG
Пользователь
 
Регистрация: 27.12.2012
Сообщений: 15
По умолчанию

как я понял мы в x заносим ascii код введенного символа a потом сравниваем его

cmp x,65
jz end

но выводит ошибку
RazerVG вне форума Ответить с цитированием
Старый 29.12.2012, 14:14   #18
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Код:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
char x[256];
char* fmt = "%s";
_asm
{
	lea edi, x
	mov esi,edi
	mov ax,0d0ah
	stosw

	m:
	call ds:_getche
	cmp al,';'
	je m1
	stosb
	jmp m

	m1:
	sub al,al
	stosb

	push esi
	push fmt
	call ds:printf;
	add esp, 8;
}
return 0;
}
vadimych вне форума Ответить с цитированием
Старый 29.12.2012, 14:53   #19
RazerVG
Пользователь
 
Регистрация: 27.12.2012
Сообщений: 15
По умолчанию

Спасибо

Щас буду разбираться потом задам вопросики

Последний раз редактировалось RazerVG; 29.12.2012 в 15:37.
RazerVG вне форума Ответить с цитированием
Старый 05.01.2013, 13:38   #20
RazerVG
Пользователь
 
Регистрация: 27.12.2012
Сообщений: 15
По умолчанию

Код:
lea edi, x //<-- адрес переменной x помещен в регистр edi  и передан функции scanf. EDI - на выходной буфер (то есть ту часть памяти, куда нужно поместить результат какой-то работы)
	mov esi,edi// помещаем значение из регистра edi в регистр esi. ESI обычно указывает на входные данные (например, хранит адрес обрабатываемой строки)
	mov ax,0d0ah//мы передаем в регистр команду перевода строки 
	stosw // нужен для того что бы необходимое слово загружалось в регистр АХ
можно узнать для чего эти 4 строки ?
RazerVG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод сообщения в assembler Hrum Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.11.2012 23:45
Вывод сообщения в трей Avalon_Albio Помощь студентам 0 17.04.2012 10:02
вывод сообщения по дате WALL Помощь студентам 9 09.11.2010 09:28
Вывод сообщения по времени DimOn4Ik БД в Delphi 12 31.03.2010 23:00
Вывод сообщения об ошибке... Ho-ho Помощь студентам 12 02.11.2009 16:54