Другие языки программирования и технологии
асемблер-надо вот такое сделать вообще не понмаю
Даны натуральные знаковые числа от 10 до 30. Напечатать те из них, кото-рые делятся на 3 и являются четными.
> натуральные знаковые
Необычное сочетание. Т. к. натуральные числа являются положительными целыми, то их обычно считают беззнаковыми.
Чтобы найти числа с требуемыми свойствами, достаточно проверить их делимость на 6. Но в данной программе отдельно проверяется делимость на 3 и чётность. Masm32, проверка корректности ввода не производится:
.386
.model flat, stdcall
option casemap :none
includelib msvcrt.lib
include windows.inc
include msvcrt.inc
.data
N dd ?
Numbers dd 1000 dup (?)
PromptN db "Введите количество чисел: ", 0
PromptX db "Введите натуральные числа от 10 до 30:", 13, 10, 0
Result db 13, 10, "Чётные числа, делящиеся на 3:", 13, 10, 0
Result2 db "Таких чисел нет. ", 0
PromptW db 13, 10, 10, "Для завершения нажмите любую клавишу... ", 0
InFormat db "%u", 0
PromptF db "%4u: ", 0
OutFormat db "%4u", 0
.code
N186232391:
invoke crt_printf, addr PromptN
invoke crt_scanf, addr InFormat, addr N
invoke crt_printf, addr PromptX
mov ecx, N
mov ebx, ecx
inc ebx
lea edi, Numbers
@@:
push ecx
mov eax, ebx
sub eax, ecx
invoke crt_printf, addr PromptF, eax
invoke crt_scanf, addr InFormat, edi
add edi, 4
pop ecx
loop @B
invoke crt_printf, addr Result
mov ecx, N
lea esi, Numbers
xor ebx, ebx
mov edi, 3
DoLoop:
push ecx
lodsd
push eax
push eax
xor edx, edx
div edi
pop eax
and eax, 1
or eax, edx
jnz @F
setz bl
invoke crt_printf, addr OutFormat
@@:
pop eax
pop ecx
loop DoLoop
test ebx, ebx
jnz @F
invoke crt_printf, addr Result2
@@:
invoke crt_printf, addr PromptW
invoke crt__getch
invoke crt__exit, NULL
end N186232391

Необычное сочетание. Т. к. натуральные числа являются положительными целыми, то их обычно считают беззнаковыми.
Чтобы найти числа с требуемыми свойствами, достаточно проверить их делимость на 6. Но в данной программе отдельно проверяется делимость на 3 и чётность. Masm32, проверка корректности ввода не производится:
.386
.model flat, stdcall
option casemap :none
includelib msvcrt.lib
include windows.inc
include msvcrt.inc
.data
N dd ?
Numbers dd 1000 dup (?)
PromptN db "Введите количество чисел: ", 0
PromptX db "Введите натуральные числа от 10 до 30:", 13, 10, 0
Result db 13, 10, "Чётные числа, делящиеся на 3:", 13, 10, 0
Result2 db "Таких чисел нет. ", 0
PromptW db 13, 10, 10, "Для завершения нажмите любую клавишу... ", 0
InFormat db "%u", 0
PromptF db "%4u: ", 0
OutFormat db "%4u", 0
.code
N186232391:
invoke crt_printf, addr PromptN
invoke crt_scanf, addr InFormat, addr N
invoke crt_printf, addr PromptX
mov ecx, N
mov ebx, ecx
inc ebx
lea edi, Numbers
@@:
push ecx
mov eax, ebx
sub eax, ecx
invoke crt_printf, addr PromptF, eax
invoke crt_scanf, addr InFormat, edi
add edi, 4
pop ecx
loop @B
invoke crt_printf, addr Result
mov ecx, N
lea esi, Numbers
xor ebx, ebx
mov edi, 3
DoLoop:
push ecx
lodsd
push eax
push eax
xor edx, edx
div edi
pop eax
and eax, 1
or eax, edx
jnz @F
setz bl
invoke crt_printf, addr OutFormat
@@:
pop eax
pop ecx
loop DoLoop
test ebx, ebx
jnz @F
invoke crt_printf, addr Result2
@@:
invoke crt_printf, addr PromptW
invoke crt__getch
invoke crt__exit, NULL
end N186232391

http://www.agpu.net/fakult/ipimif/fpiit/kafinf/rabkab/archkomp/assembler_dlya_chaynikov.pdf
Не благодарите... а лучше бросайте сразу занятия программированием.. не ваше это... вы учится не хотите, а работа программиста 50% времени занятия самообразованием...
Не благодарите... а лучше бросайте сразу занятия программированием.. не ваше это... вы учится не хотите, а работа программиста 50% времени занятия самообразованием...
Александр Глущенко
Пожалуйста посоветуйте мне бесплатную программу т, е среду программирования, чтобы начать программировать на ассемблере
Похожие вопросы
- как найти количество максимальных элементов в массиве? на асемблере. на асемблере
- Помогите сделать. СРОЧНО. Асемблер.
- с какого языка програмирования стоит начать? с С++ или асемблера??
- //////////////////Маленький вопрос по АСЕМБЛЕРУ\\\\\\\\\\\\\\\\\
- Очень нужна помощь....Асемблер(tasm)
- асемблер ошибка
- как заставить ету прогу упак и неупак. BCD (асемблер, масм32)
- Помогите пожалуйста с задачей по асемблеру. Построить конкатенацию (последовательную запись) файла TWO сомого с собой.
- Помогите с асемблером. Знает кто нибудь как там пример решить?
- как поменять максимум и минимум в матрице на асемблере???