Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка та налагодження підпрограм на мові Асемблера

Реферат Розробка та налагодження підпрограм на мові Асемблера





рівно стільки разів, скільки цифр

; нарахували


Рис. 4


3.3 Програма на мові програмування Асемблер IBMPC


. modelsmall

. stack 200h

. data ?? 4 dup (?,?,?,?) ??? 8db 0123456789ABCDEF db 4 DUP (20h), 13,10, $ db Resultat , 13,10, $

. code, ax; Перевіряємо число на знак.oi1

; Якщо воно негативне, виведемо

; мінус і залишимо його модуль.

mov cx, axah, 02hdl, - 21h

movax, cx

; Кількість цифр будемо тримати в CX :, cx, 10; підставу сс. 10 для десятеричной і т.п.:, Dx

; Ділимо число на підставу сс.

; У залишку виходить остання цифра.

; Відразу виводити її не можна,

; тому збережемо її в стек.

; А з приватним повторюємо те ж саме,

; відокремлюючи від нього чергову

; цифру справа, поки не залишиться нуль,

; що означає, що далі зліва лише нулі., axoi2

; Тепер приступимо до висновку., 02h:

; Витягуємо чергову цифру,

; переводимо її в символ і виводимо., 0 21h

; Повторимо рівно стільки разів,

; скільки цифр насчіталі.oi3

retah, 0ah, di, offset buff; аддресбуфера21h; приймаємо строкуdl, 0ahah, 02

int 21h; виводимо перекладу рядка

; обробляємо вміст буфера, offset buff + 2; беремо аддрес початку рядка [si], - raquo ;; якщо перший символ мінусii1di, 1; встановлюємо прапор; і пропускаємо його:, axbx, 10; підставу СC:, [si]; беремо символ з буфераcl, 0dh; перевіряємо чи не останній він

; якщо символ не останній, то

; перевіряємо його на правільностьcl, 0 raquo ;; коли введено неправильний символ lt; 0cl, 9 raquo ;; коли введено неправильний символ gt; 9cl, 0 raquo ;; робимо з символу число; множимо на 10, cx; додаємо до решти; покажчик на наступний сімволii2; повторюємо :; якщо була помилка, то виводимо

; повідомлення про це і виходимо, offseterror

mov ah, 0921h20h

; всі символи з буфера

; оброблені число знаходиться в ax: di, 1; якщо встановлено прапор, тоii3; робимо число негативним

ii3: incorrect number $ 6,7 Dup (?) proc near; --------------------- eAl, 2, cBL, AXAX, 0BX, 06; ??? endpprocnear; fAX, 0, aALDX, 1AX, DXf, AXAX, 0DX, 06; ??? endp: ax,Datads, ax; вводчіслаа, AL; вводчіслас, ALSI, 0SI: call InputIntSId [SI], ALSI, 2, tSIl1PP1; визовп п 1PP2; визовп п 2SI, 0CX, 4AX, AX, AX: mov DX, 0AH, 0CL, 0, d [SI] BL , ALAX, 0m2CL, 1AL, BLAL: mov DL, 4DLCL, 0m3AL: mov BX, eBX, AXAX, BXAX, BX, fBX; AL=AL/fBX, AXAX, BX, yAX, DXy, AXSI, 2, tforCX, 0AX , yDX, AX; DX:=AXAX, 4c00h21h

END begin

Програма на мові програмування Асемблер IBMPC


Рис. 5


Рис. 6

4. Тестування та налагодження


Вхідні данниеСі Int (десяткова СС) Сі float (десяткова СС) Асемблер УМ (шістнадцяткова СС) Асемблер IBMPC (десяткова СС) a=2 c=20 d [0]=20 d [1]= 12 d [2]=4 d [3]=- 1629311D29a=3 c=30 d [0]=51 d [1]=41 d [2]=24 d [3]=- 212021.6251420a=2 c=20 d [0]=20 d [1]=14 d [2]=4 d [3]=+1628 29.31C28

Переведемо результат роботи Асемблера УМ в десяткову СС:

D=29

=20

C=28.

Явно бачимо, що результат роботи програм на Сі (для int), Асемблер УМ і Асемблер IBMPC збігаються на 100%. Результат роботи програм на Сі (для float) трохи відрізняється зважаючи точності обчислень і відрізняється від округленого значення максимум на 2 одиниці.


5. Інструкція користувача


Мова програмування Сі (для int)

вікно із запитом: «Введіть а:». Необхідно ввести потрібне значення змінної «а», вона може бути будь-яким цілим позитивним чи негативним числом. Натискаємо Enter.

Далі в цьому діалоговому вікні з'являється запит: «Введіть з:». Необхідно ввести потрібне значення змінної «с», вона може бути будь-яким цілим позитивним чи негативним числом. Натискаємо Enter.

Наступним з'явиться новий запит: «Введіть 4 значень для масиву:». Вводимо 4 будь-яких значень, які можуть бути будь-якими цілими позитивним...


Назад | сторінка 3 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Програмування мовою Асемблер
  • Реферат на тему: Як бути, якщо контрагент за договором - нерезидент?
  • Реферат на тему: Асемблер для IBM PC
  • Реферат на тему: Асемблер для платформи Java
  • Реферат на тему: Бойовий Прапор військової частини - символ військової частини, доблесті і с ...