Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Ассемблер. Срочно нужна помощь (http://www.tehnari.ru/f41/t53896/)

Fasmon 29.06.2011 17:44

Ассемблер. Срочно нужна помощь
 
Нужно сделать вывод результата на экран (в окне отдельном) в ассемблере (сам код написан и работает). У самого идеи кончились. Постоянно ошибки какие-то лезут...
Помощь нужна срочно.

Код:

.386
.model flat,stdcall
option casemap:none



_DATA SEGMENT
consA equ 1574 ;626h
consB equ 432 ;1B0h
consC equ 1632 ;660dh
consD equ 1835 ;72Bh

consx1 equ 586; 24Ah
consx2 equ 649; 289h
consx3 equ 934; 3A6h

mul_rez_l dw 0
mul_rez_h  dw 0
mul_rez_c dw 0

carry dw 0
_DATA ENDS

CSEG SEGMENT
_Begin:
    xor eax,eax
    xor ebx,ebx
    xor edx,edx
   
firstx:
    mov ax,consx1 ;
    add ax,consA
    sub ax,consB
    mov bx,consC
    mul bx ;результат dx:ax
    mov bx,consD
    div bx ; делим результат предыдущих операций  dx:ax на bx  частное ax, остаток dx

    xor eax,eax
    xor ebx,ebx
    xor edx,edx
   

secondx:
    mov ax,consx2 ;
    add ax,consA
    sub ax,consB
    mov bx,consC
    mul bx ;результат dx:ax
    mov bx,consD
    div bx ; делим результат предыдущих операций  dx:ax на bx  частное ax, остаток dx

    xor eax,eax
    xor ebx,ebx
    xor edx,edx

thirdx:
    mov ax,consx3 ;
    add ax,consA
    sub ax,consB
    mov bx,consC
    mul bx ;результат dx:ax
    mov bx,consD
    div bx ; делим результат предыдущих операций  dx:ax на bx  частное ax, остаток dx

    xor eax,eax
    xor ebx,ebx
    xor edx,edx

   
y1:
    ;вычислим 12*x1^2 + 7x1 - 16
    ;x^2
    mov ax,consx1
    mov bx,ax
    mul bx
    jnc no_carry_x1_2
    mov mul_rez_h,dx
no_carry_x1_2:
    mov mul_rez_l,ax
   
    ;12* x^2
    xor dx,dx
    mov bx,12 ; 0Ch
    mul bx
    mov carry, dx
    mov mul_rez_l,ax

    xor dx,dx
    mov ax,mul_rez_h
    mul bx
    add ax,carry
    adc dx,0
    mov mul_rez_h,ax
    mov mul_rez_c,dx 

    ;7x1
    xor dx,dx
        mov ax,consx1
        mov bx,7
        mul bx ; - результат dx:ax

    ;12*x1^2 + 7x1
    add ax,mul_rez_l
        adc dx,mul_rez_h
        adc mul_rez_c,0
   
    ;...-16
        mov bx,16 ; 10h
    sub ax, bx
        jnc no_carry_sub
    neg ax
no_carry_sub:
        sbb dx,0
        jnc no_carry_sub2
        neg dx
no_carry_sub2:
        sbb mul_rez_c,0
    ret

CSEG ends



end _Begin

Благодарю заранее всех отозвавшихся.


Часовой пояс GMT +4, время: 14:13.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.