Консультация № 188429
15.12.2015, 18:30
0.00 руб.
0 3 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
create a function that selects the biggest number from the two given ones. Implement a program,which selects the maximum among four given numbers.

Обсуждение

давно
Посетитель
7438
7205
15.12.2015, 18:51
общий
15.12.2015, 18:53
Адресаты:
1) Do you understand Russian?
2) Which processor/controller want you? X86, AVR, ARM, ...
3) Which Assembler (for X86)? TASM, MASM, FASM ,...
4) Operating system? DOS, Windows, Linux,...
5) Bit width? 16, 32, 64
6) How to set the data? In code, from console, ...
7) Need you ready program, or only a fragment?
8) How to pass parameters: in registers or on the stack?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
15.12.2015, 19:41
общий
Адресаты:
Where are you?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
20.12.2015, 17:55
общий
это ответ
Hi, moldir_nurmahanova!
[code h=200]
.model tiny ;for COM
.code
.startup
lea si, nums ;numbers address
call max4 ;calc max value from [si],[si+2],[si+4] and [si+6]
.exit 0

max4 proc
call max2 ;calc max from [si] and [si+2]
mov bx, ax ;save in bx register
add si, 4 ;to next two numbers
call max2 ;calc max from [si] and [si+2] (old [si+4] and [si+6])
cmp ax, bx ;compare
jg max4_ret
mov ax, bx
max4_ret: ;ax = max(ax,bx)
ret
max4 endp

max2 proc
mov ax, [si] ;first number
cmp ax, [si+2] ;compare with second
jg max2_ret
mov ax, [si+2]
max2_ret: ;ax = max(first,second)
ret
max2 endp

nums dw 123, 224, -5, 230 ;numbers

end
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа