Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; res = y1 / y2
- ; y1 = 12 if x < 12 else x+1
- ; y2 = 2 if x > 2 else a+x
- .386
- .model flat, stdcall
- option casemap :none ; case sensitive
- include \masm32\include\windows.inc
- include \masm32\include\kernel32.inc
- include \masm32\include\user32.inc
- include \masm32\include\masm32.inc
- includelib \masm32\lib\kernel32.lib
- includelib \masm32\lib\user32.lib
- includelib \masm32\lib\masm32.lib
- .data
- x db 1
- a db 2
- y1 dw ?
- y2 dw ?
- res dd ? ; окончательный результат
- dest db 10 dup (?)
- title_1 db "lab3",0
- .code
- start:
- cmp x, 12
- ; if x < 12
- jb assign_y1_12
- ; else
- jmp assign_y1_x_plus_1
- assign_y1_12:
- mov y1, 12
- jmp done_1
- assign_y1_x_plus_1:
- mov al, x
- inc al
- cbw
- mov y1, ax
- jmp done_1
- done_1:
- cmp x, 2
- ; if x > 2
- ja assign_y2_2
- ; else
- jmp assign_y2_x_plus_a
- assign_y2_2:
- mov y2, 2
- jmp done_2
- assign_y2_x_plus_a:
- mov al, x
- cbw
- mov y2, ax
- mov bx, y2
- mov al, a
- cbw
- add bx, ax
- mov y2, bx
- jmp done_2
- done_2:
- mov ax, y1
- cwd
- idiv y2
- cwde
- mov res, eax
- invoke dwtoa, res, addr dest
- invoke MessageBox,0,addr dest,addr title_1,MB_OK
- invoke ExitProcess, 0
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement