Среднее арифметическое с 6 чисел - Assembler
Формулировка задачи:
Добрый вечер уважаемые знатоки
Столкнулся я с проблемой в одной учебной задаче и решить мне ее почему-то не удается, прога должна считать и выводить среднее с десятыми 6 чисел. Это она и делает, но работает к сожалению не правильно. К примеру среднее чисел (1+2+3+4+5+6)/6 = 3.3
Вопрос: что я делаю не так?
/* Не обращайте внимания на польский язык, учусь на данный момент в Польше и должен писать на польском */
int main(){ __int16 zme1 = 0; __int16 zme2 = 0; __int16 zme3 = 0; __int16 zme4 = 0; __int16 zme5 = 0; __int16 zme6 = 0; __int32 zme7 = 0; cout << "Podaj liczby 1 : " << endl; cin >> zme1; cout << "Podaj liczbu 2 : " << endl; cin >> zme2; cout << "Podaj liczby 3 : " << endl; cin >> zme3; cout << "Podaj liczbu 4 : " << endl; cin >> zme4; cout << "Podaj liczby 5 : " << endl; cin >> zme5; cout << "Podaj liczbu 6 : " << endl; cin >> zme6; _asm { mov ax, zme1; push ax; mov ax, zme2; push ax; mov ax, zme3; push ax; mov ax, zme4; push ax; mov ax, zme5; push ax; mov ax, zme6; push ax; call proc; add ESP, 12; jmp finish; proc: mov BX, 0; mov ECX, 6; add ESP, 4; cykl: pop AX; add BX, AX; loop cykl; xor EDX, EDX; mov CX, 6; mov AX, BX; div CX; sub ESP, 16; ret; finish: mov zme1, AX; mov zme7, edx; } cout << "Wynik to : " << zme1 << '.' << zme7 << endl; system("pause"); }
Решение задачи: «Среднее арифметическое с 6 чисел»
textual
Листинг программы
model tiny .code org 100h szMass equ 8 start: lea di,mass xor ax,ax mov cx,szMass @@01: add al,[di] adc ah,0 inc di loop @@01 ; mov ax,321 xor si,si mov bx,10 @@02: mov cx,szMass xor dx,dx div cx push dx call outNum pop ax or ax,ax jz @@03 or si,si jnz @@1 push ax mov al,'.' int 29h mov si,1 pop ax @@1: xor dx,dx mul bx jmp @@02 @@03: ret OutNum: xor cx,cx @@04: xor dx,dx div bx push dx inc cx or ax,ax jnz @@04 @@05: pop ax add ax,'0' int 29h loop @@05 ret ; Mass label byte i_mass = 1 rept szMass db i_mass i_mass = i_mass + 1 endm
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д