| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > распечатка цифр от 10 до 100, как реализовать |
| Автор: americanets 30.10.2008, 17:18 | ||||||
как реализовать такую вещь, на с++ например это у меня выглядит так , а как на ассемблере сделать , компилятор nasm (linux x 64)
в ассеблере не разбираюсь а вот код такой очень нужен например под nasm хело ворд такой
|
| Автор: Rodman 30.10.2008, 19:53 | ||
|
| Автор: Mikl_ 31.10.2008, 04:48 | ||
americanets, никогда не писал под linux, но наверное твоя задача решается так
|
| Автор: americanets 31.10.2008, 09:52 | ||||
| Rodman, да, извиняюсь Mikl_, не поддерживается в 64
|
| Автор: Mikl_ 31.10.2008, 11:10 | ||
americanets, я же написал, что в linux не программировал -- соответственно, компилятора под линух у меня нет и увидеть ошибки (про 64-разряда не было сказано ни слова) я не могу. Знаю точно, что инструкция aam в 64-разрядах не поддерживается. На что еще ссылается компилятор? (на какие строки листинга?) Понял - на push ecx и pop ecx Вообще-то пуш/поп в 64-разрядах должен поддерживаться -- напиши push rcx/pop rcx
|
| Автор: americanets 31.10.2008, 11:39 | ||
| Mikl_, огромное спасибо то что надо
Добавлено через 9 минут и 52 секунды а как быть с вводом счисел через командную строку ? test 10 100 например и обработать как ошибку если не числа |
| Автор: Mikl_ 1.11.2008, 04:03 | ||
| americanets, я уже третий раз повторяю -- я не программирую на linux и, соответственно, не знаю как обрабатывается на linux командная строка, кстати, обрати внимание, что у тебя цифры "вывернуты на изнанку" -- посмотри в листинге -- я предлагал в этом случае убрать строку xchg ah,al <-- 8 строка Q: Как мне получить аргументы командной строки и переменные окружения? A: В точке входа в программу (_start:) в стеке содержатся следующие данные: dword [esp] - n, количество аргументов командной строки dword [esp+4] - адрес первого аргумента, имя программы dword [esp+4*2] - адрес второго аргумента ... dword [esp+4*n] - адрес последнено аргумента dword [esp+4*n+4] - нулевой адрес (NULL) dword [esp+4*n+8] - адрес переменных окружения Q: Какие порекомендуете ссылки? A:GNU Binutils (англ) - http://www.gnu.org/software/binutils NASM (рус) - http://www.opennet.ru/docs/RUS/nasm/ GNU AS(рус) - http://www.opennet.ru/docs/RUS/gas FASM (рус) - http://mythrillus.land.ru/tajga-tut/index.html Форум WASM.UNIX (рус) на http://wasm.ru/forum Справочник man (рус, англ) http://man.opennet.ru Архитектура операционной системы UNIX (пер. с THE DESIGN OF THE UNIX OPERATING SYSTEM by Maurice J. Bach) Читай значения в командной строке "test MIN MAX" переводишь MIN и MAX из строковой в числовую форму и подставишь сюда
|
| Автор: americanets 1.11.2008, 09:33 |
| Mikl_, спасибо , про цифры прочитал, закоментировал нормально работает, спасибо за ссылки и объяснение |