Условие таково: Реализовать вычисление значения полинома n-ой степени для целочисленных переменных по схеме Горнера. Передачу параметров оргнизовать через сегмент данных с общей памятью. Вот то, что уже написано:
| Код | .486 StackSg SEGMENT PARA STACK 'Stack' dw 256 DUP(?) StackSg ENDS
DataSg SEGMENT PARA COMMON 'Data' sum dd 0 temp dd 0 count dw 0 blank db ' ' number dd 0 lenght db 6 value dd 0 mas_fac dd 4 DUP(0) numberString db 6 DUP(?) deleteSymbol db 08h, ' ', 08h, '$' ask db 'Enter value. Enter factor vektor. Disjoin each number by blank :' DataSg ENDS CodeSg SEGMENT PARA ASSUME CS: CodeSg, DS: DataSg, SS: StackSg start: xor si,si cycle: mov cx, 3 xor eax,eax call readNumber fillMas_fac: mov eax, dword ptr[number] mov mas_fac[si], eax add si, 4 inc count mov dl, blank mov ah, 02h int 21h cmp count, 4 je exitFor jmp cycle
exitFor: xor edx, edx xor eax, eax xor ebx, ebx mov si, 0 mov eax, mas_fac[si] mov value, eax mov si, 12 mov cx, 1 mov ebx, mas_fac[si] mov sum, ebx
create: mov eax, value mul sum sub si, 4 add eax, mas_fac[si]
mov sum, eax ;loop create cmp cx, 0 je post dec cx jmp create post: mov eax, sum mov cx, 5 call writeNumber
exit: mov ax, 04Ch int 21h fillMas_fac1: jmp fillMas_fac
CodeSg ENDS end start
|
Вопросов возникает 2: как организовать сегмент данных с общей памятью? почему при компиляции выходит ошибка на строках работы с массивом? |