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

Реферат Програмування на машинно-орієнтованій мові





ться в ax: cmp di, 1; якщо встановлено прапор, тоii3ax; робимо число негативним: retdb incorrect number $ db 6,7 Dup (?) endp


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

Процедура виведення


OutInt proc near; ===== Процедура виводаax, ax; перевіряємо число на знак.oi1cx, ax; eсли воно негативне, виведемо мінус і

; залишимо його модульah, 02hdl, - 21hax, cxax: xor cx, cx; кількість цифр будемо тримати в CXbx, 10; підставу сс. 10 для десятеричной і т.п .: xor dx, dxbx; ділимо число на підставу сс, в залишку

; виходить остання ціфраdx; відразу виводити її не можна, тому збережемо

; її в стекеcx

; а з приватним повторюємо те ж саме, відокремлюючи

; від нього очереднуюax, ax; цифру справа, поки не залишиться нуль, що

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

; ======== Висновок ========= ah, 02h: pop dxdl, 0 raquo ;; витягаємо чергову цифру, переводимо її в

; символ і виводім21hoi3; повторимо рівно стільки разів, скільки цифр

; насчіталіendp



Блок схема



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


. model small

. stack 200h

.datadb? db? db 4 dup (?,?,?,?) dw? dw? dw? dw 8db 0123456789ABCDEF db 4 DUP (20h), 13,10, $ db laquo ; Resultat , 13,10, $

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

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

; мінус і залишимо його модуль.cx, axah, 02hdl, - 21hax, cxax

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

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

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

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

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

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

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

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

; що означає, що далі зліва тільки нулі.ax, axoi2

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

oi3: dx

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

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

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

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

retendpprocah, 0ah

xor di, didx, offset buff; аддрес буфера21h; приймаємо строкуdl, 0ahah, 0221h; виводимо перекладу рядка

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

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

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

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

mov dx, offset errorah, 0921h20h

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

; оброблені число знаходиться в ax: di, 1; якщо встановлено прапор, тоii3ax; робимо число негативним: db incorrect number $ db 6,7 Dup (?) endpproc near; --------------------- eAl, 2BL, cBLe, AXAX, 0BX, 06; ???

PP1 endpproc near; f

mov AX, 0AL, aALDX, 1AX, DXf, AXAX, 0DX, 06; ??? endp: ax,Datads, axInputInt; введення числа АA, ALInputInt; введення числа СC, ALSI, 0SI: call InputIntSId [SI], ALSI, 2SI, tSIl1

call PP1; виклик п п 1

call PP2; виклик п п 2SI, 0CX, 4AX, AXy, AX: mov DX, 0AH, 0CL, 0AL, d [SI]

mov BL, ALAX, 0m2CL, 1AL, BL

neg AL: mov DL, 4DL

cbwCL, 0m3AL: mov BX, e

sub BX, AX

cbwAX, BX

mov AX, BXBX, f

idiv BX; AL=AL/fBX, AXAX, BX

cwdDX, yAX, DXy, AXSI, 2SI, tforCX, 0

mov AX, yDX, AX; DX:=AX

call OutIntAX, 4c00h21hbegin


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


Блок схема






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


Вхідні данниеСі Int (десяткова СС) Сі float (десяткова СС) Асемблер УМ (шістнадцяткова СС) Асемблер IBM PC (десяткова СС) a=2 c=20 d [0]=20 d [1] =12 d [2]=4 d [3]=- 16 29 31 1D 29a=3 c=30 d [0]=51 d [1]=41 d [2]=24 d [3]=- 21 20 21.625 14 20a=2 c=20 d [0]=20 d [1]=14 d [2]=4 d [3]=16 28 29.3 1C 28

Переведемо результат роботи Асемблера УМ в д...


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





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

  • Реферат на тему: Концепт "число" у давньоруській мові (на матеріалі пам'яток Х ...
  • Реферат на тему: Програмування мовою Асемблер
  • Реферат на тему: Закріплення знань учнів з теми: "Числа 1-10 та число 0"
  • Реферат на тему: Бойовий Прапор військової частини - символ військової частини, доблесті і с ...
  • Реферат на тему: Число Пі