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

Реферат Розробка діалогового вікна в MASM32





nst_log fld angle1 FYL2X FDIVP st (1), st (0) fstp qword ptr [angle] mov ecx, 20 lea esi, buffer buffer_cliner2: mov byte ptr [esi], 0 inc esi loop buffer_cliner2 invoke FloatToStr, angle, ADDR buffer call DecToHex invoke MessageBox, NULL, ADDR buffer_out, ADDR AppName, MB_OK .ELSE invoke DestroyWindow, hWnd .ENDIF .ELSE .IF ax == ButtonID shr eax, 16 .IF ax == BN_CLICKED invoke SendMessage, hWnd, WM_COMMAND, IDM_GETTEXT, 0 .ENDIF .ENDIF .ENDIF .ELSE invoke DefWindowProc, hWnd, uMsg, wParam, lParam ret .ENDIF xor eax, eax ret WndProc endp readdec proc; процедура перетворення символьного рядка за адресою ESI в число в співпроцесор fld zero fstp dword ptr [integer] fld zero fstp dword ptr [fractional] fld zero fstp dword ptr [fractional_buffer] mov counter, 1xor eax, eax xor edx, edx xor ecx, ecx mov ebx, 16 int_part_read: mov cl, byte ptr [ esi] cmp cl, , jne int_part_read_jump1 mov byte ptr [esi], . int_part_read_jump1: cmp cl, . ; jnz int_part_read_jump2 inc esi mov integer, eax; saved integer part of number jmp fractional_part_read int_part_read_jump2: .IF (cl gt; 29h amp; amp; cl lt; 40h); sub cl, 30h;.ELSEIF (Cl gt; 40h amp; amp; cl lt; 47h); sub cl, 37h;.ELSEIF (Cl gt; 60h amp; amp; cl lt; 67h); sub cl, 57h;.ENDIF Mul bl add ax, cx inc esi jmp int_part_read fractional_part_read: xor eax, eax mov al, byte ptr [esi] .IF (al == 0h); string termintor jmp unknow .ELSEIF (al gt; 29h amp; amp; al lt; 40h); sub al, 30h;.ELSEIF (Al gt; 40h amp; amp; al lt; 47h); sub al, 37h;.ELSEIF (Al gt; 60h amp; amp; al lt; 67h); sub al, 57h .ENDIF mov ecx, counter mov fractional_buffer, eax fild fractional_buffer modulo_division: fdiv hex loop modulo_division fadd fractional fstp fractional inc counter inc esi jmp fractional_part_readunknow: fild integer fadd fractional fstp angle_read ret readdec endp DecToHex proc; процедура перетворення символьного рядка по адресою ESI в символьних рядків за адресою EDI mov counter, 0 lea esi, buffer xor eax, eax; обнулення eax mov ebx, 10; основа системи числення mov cl, byte ptr [esi]; перевірка вводу - cmp cl, - ; jne DecToHex_m2 jmp exit DecToHex_m2: mov cl, byte ptr [esi] cmp cl, 2Eh; 2E - it is the point je DecToHex_m1 sub cl, 30h; переклад з ASCII mul ebx add eax, ecx inc esi; перехід до наступного байту масиву jmp DecToHex_m2 DecToHex_m1: inc esi xor ecx, ecx DecToHex_m3: mov ebx, eax and ebx, 0000000fh add bl, 30h .if (bl gt; 39h) add bl, 7 .endif push ebx inc ecx shr eax, 4 cmp eax, 0 jne DecToHex_m3 lea edi, buffer_out DecToHex_m4: pop ebx mov byte ptr [edi], bl inc edi loop DecToHex_m4 mov byte ptr [edi], 2Eh; ставимо роздільник inc edi; ************ З цілою частиною закінчили xor eax, eax; обнулення eax mov ebx, 10; підставу системи счісленіяDecToHex_m5: mov cl, byte ptr [esi] cmp cl, 0; 0 - it is end of number je DecToHex_m6 sub cl, 30h; переклад з ASCII mul ebx add eax, ecx inc esi; перехід до наступного байту масиву jmp DecToHex_m5 DecToHex_m6: cmp eax, 0 jnz DecToHex_m7 mov byte ptr [edi], 30h; ставимо нуль і йдемо jmp DecToHex_End DecToHex_m7: .if (eax gt;=0 amp; amp; eax lt; 10) mov divider, 10 .elseif (eax gt;=10 amp; amp; eax lt; 100) mov divider, 100.elseif (eax gt;=100 amp; amp; eax lt; 1000) mov divider, 1000 .elseif (eax gt;=1000 amp; amp; eax lt; 10000) mov divider, 10000 .elseif (eax gt;=10000 amp; amp; eax lt; 100000) mov divider, 100000 .elseif (eax gt;=100000 amp; amp; eax lt; 1000000) mov divider, 1000000 .elseif (eax gt;=1000000 amp; amp; eax lt; 10000000 ) mov divider, 10000000 .elseif (eax gt;=10000000 amp; amp; eax lt; 100000000) mov divider, 100000000 .elseif (eax gt;=100000000 amp; amp; eax lt; 1000000000) mov divider, 1000000000 .endif mul hexInt div divider add al, 30h .if (al gt; 39h) add al, 7 .endif mov byte ptr [edi], al inc edi cmp edx, 0 jz DecToHex_End mov eax, edx inc counter cmp counter, 2 ja DecToHex_End jmp DecToHex_m7 DecToHex_End: exit: ret DecToHex endp end start Малюнок 3 - Текст програми in out loga (x) .asm



3. Керівництво оператора


У даному розділі представлені: призначення програми, мінімальні системні вимоги, умови виконання програми, опис призначень клавіш.

Дана програма призначена для підрахунку функції: при введенні коефіцієнтів.

Мінімальні системні вимоги:

) операційна система: Windows XP;

2) процесор: Pentium III;

) відео: 800x600;

) оперативна пам'ять: 2 Мб.

) Клавіатура, миша

Умови виконання програми:

Коефіцієнт a gt; 1.

Введення в 16-річної системі числення.

Робота з програмою:

Запускаємо еxe-файл. У вікні (малюнок 4) Для того щоб роз...


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





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

  • Реферат на тему: Дослідження роботи тістоділитель &Suction Dough Divider SD-180& і визначенн ...
  • Реферат на тему: Розробка програми перекладу введеного рядка тексту в послідовність кодів аб ...
  • Реферат на тему: Проектування програми з аналізу масиву
  • Реферат на тему: Розробка програми для створення і перетворення графічних об'єктів
  • Реферат на тему: Розробка судновий електроенергетичної системи суховантажу дедвейтом 10000 т