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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2015, 11:09   #1
sensys64
Новичок
Джуниор
 
Регистрация: 08.04.2015
Сообщений: 1
По умолчанию Массив заполнить натуральными числами от 1 до 10 и организовать вывод массива на экран в виде таблицы

Помогите с написанием программы

Массив заполнить натуральными числами от 1 до 10 и организовать вывод массива на экран в виде таблицы 2x5 с фиксированной шириной столбцов:

Четные элементы массива вывести в одной строке, нечетные вывести с новой строки
sensys64 вне форума Ответить с цитированием
Старый 08.04.2015, 11:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как-нибудь пробовал решить?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.04.2015, 18:58   #3
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..способов проверки на чётность, мне известно два. А есть ещё???
1. тест младшего бита маски на 0 (если 0, то чётное)
2. тест делимости числа на-цело
Код:
; число в AX
;--------тест младшего бита маски
test al,1       
jz   even
odd:        ; действие, если число в AX нечётное
....
even:       ; ..если число чётное
....

;--------тест делимости без остатка
mov  bl,2   ; в BL делитель
div  bl     ; делим АХ на BL
cmp  ah,0   ; остаток = 0?
jz   yes    ; если да, перейти к YES

no:         ; если нет, продолжить
....
yes: 
....
Если-же смухлевать и расположить циферки по-порядку, то можно просто выводить их через/одну:

Пример окна:

Array number...: 0123456789
Even numbers...: 02468
Uneven numbers.: 13579

Код:
use16
org 100h
jmp start

array    db 0,1,2,3,4,5,6,7,8,9

mUser    db ' Array numbers..: $'
mArray1  db 13,10,' Even numbers...: $'
mArray2  db 13,10,' Uneven numbers.: $'

start:
   mov  dx,mUser        
   call message         ; мессага..

;--------покажем весь массив
   mov  si,array        ; грузим его в SI
   push si              ; сохраним указатель 
   push si
   mov  cx,10           ; длинна массива
again:                  
   mov  al,[si]         ; берём первый элемент массива
   call hdec            ; переводим в DEC и печатаем
   inc  si              ; переходим ко второму элементу..
loop again              ; мотаем, пока CX > 0

;--------выводим чётные цифры
   mov  dx,mArray1        
   call message         ; мессага..
   pop  si              ; восстановим указатель
   mov  cx,5            ; счётчик
even:
   mov  al,[si]         ; печатаем первый символ
   call hdec
   add  si,2            ; пропускаем следующий
loop even               ; мотаем 5 раз

;--------выводим нечётные цифры
   mov  dx,mArray2      
   call message         ; мессага
   pop  si
   mov  cx,5
uneven:
   mov  al,[si+1]       ; начинаем со-второго элемента
   call hdec            ; печатаем..
   add  si,2            ; пропускаем следующий
loop uneven             ; мотаем 5 раз

;--------ждём клавишу и выходим
   xor ax,ax
   int 16h
   int 20h

;--------процедура перевода в DEC и печати символа
hdec:
   or   al,30h
   int  29h
ret
;--------процедура печати текста
message:
   mov ah,9
   int 21h
ret
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнить массив М(10) случайными значениями. Организовать вывод на экран. Присвоить указателю адрес начала размещения массива в п Simca Паскаль, Turbo Pascal, PascalABC.NET 6 28.03.2014 15:42
Заполнить массив случайными числами и выделить в другой массив все числа, которые встречаются более darkland Паскаль, Turbo Pascal, PascalABC.NET 2 04.03.2014 20:44
получить прямоугольную матрицу A,заполнить натуральными случайными числами, записать наибольший общий делитель двух чисел! AntonKalinin01 Помощь студентам 0 26.05.2013 07:07
составить массив из всех простых чисел, лежащих между заданными натуральными числами ( Pascal ) Evelin_18 Помощь студентам 1 22.03.2013 10:37
бесконечная таблица заполнить натуральными числами по принципу змейки (Паскаль) ubun Помощь студентам 9 14.11.2011 12:53