Программирование и основы алгоритмизации
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
x,0
;;; поле2
push0
pushhInst
push0
push@@hwnd
push20
push35
push50
push50
pushSTYLEDT
pushoffset CPEDT
pushoffset CLSEDT
push0
callCreateWindowExA
movhh2,eax
moveax,0
;;;;;;3
push0
pushhInst
push0
push@@hwnd
push20
push35
push50
push90
pushSTYLEDT
pushoffset CPEDT
pushoffset CLSEDT
push0
callCreateWindowExA
movhh3,eax
moveax,0
;;;;;
push0
pushhInst
push0
push@@hwnd
push20
push80
push80
push10
pushSTYLBTN;STYLBTN
pushoffset CPBUT
pushoffset CLSBTN
push0
callCreateWindowExA
movhbtn,eax
moveax,0
push0
pushhInst
push0
push@@hwnd
push20
push80
push80
push 100
pushSTYLBTN;STYLBTN
pushoffset CPBUT2
pushoffset CLSBTN
push0
callCreateWindowExA
movhbtn2,eax
moveax,0
;возвращаемое значение 0
jmpexit_wndproc
wmcommand:
moveax, hbtn
cmp@@lparam,eax
jecalc
moveax, hbtn2
cmp@@lparam,eax
jeres
wmnodestroy:
moveax,0
jmpexit_wndproc
res:
jmp wmdestroy
wmpaint:
pushoffsetps
push@@hwnd
callBeginPaint
mov@@hdc,eax
pushMesWindowLen
pushoffset MesWindow
push20
push10
push@@hdc
callTextOutA
;освободить контекст
pushoffset ps
push@@hdc
callEndPaint
moveax,0;возвращаемое значение 0
jmpexit_wndproc
wmdestroy: ;послать сообщение WM_QUIT
push0
callPostQuitMessage
moveax,0;возвращаемое значение 0
jmpexit_wndproc
default:
;обработка по умолчанию
push@@lparam
push@@wparam
push@@mes
push@@hwnd
callDefWindowProcA
jmp exit_wndproc
calc:
;считываем поле 1
pushoffset TEXTA
push150
pushWM_GETTEXT
pushhh1
callSendMessageA
pushoffset TEXTA
callStringToDig
mova,eax
;поле 2
pushoffset TEXTA
push150
pushWM_GETTEXT
pushhh2
callSendMessageA
pushoffset TEXTA
callStringToDig
movb,eax
;поле 3
pushoffset TEXTA
push150
pushWM_GETTEXT
pushhh3
callSendMessageA
pushoffset TEXTA
callStringToDig
movn,eax
movecx,n
moveax,1d
repeat:
imula
looprepeat
imulb
aam
orax,3030h
mov [TEXTB+12],ah
mov [TEXTB+13],al
push@@hwnd
callGetDC
mov@@hdc,eax
push18
pushoffset TEXTB
push120
push10
push@@hdc
callTextOutA
exit_wndproc:
ret
WindowProcendp
StringToDig proc near
ARG @@TEXT:DWORD
movesi,@@TEXT
moveax,0
movedx,0
movdl,[esi]
cmp dl,-
jne N
mov temp,1
inc esi
movdl,[esi]
N:cmpdl,0
jlMRET
cmpdl,9
jgMRET
anddl,0Fh ; ASCII->BCD
addeax,edx
multen
incesi
movdl,[esi]
cmpdl,0
jlMDIV
cmpdl,9
jgMDIV
;multen
anddl,0Fh
addeax,edx
jmpMRET
MDIV:divten
MRET:
cmp temp,1
jne n1
imul eax,-1
mov temp,0
n1:ret
StringToDig endp
endstart
- Схема алгоритма
Вывод результата работы
- Проверка правильности программы
1)
2)
3)
4)
Данные, полученные в результате вычислений, совпадают с теми, что были получены в результате выполнения программы.