我是编程汇编的初学者。我想在图形模式下绘制 f(x)=x*sin(1/x) 曲线。我可以画出 f(x)=sin(x) 曲线,但我无法画出 f(x)=x*sin(1/x)。我怎么能这样做?
下面你可以看到我的工作 f(x)=sin(x) 代码。它正在工作并完美地绘制正弦曲线:
    org 100h                   
    mov al,13h
    int 10h
    xor bx,bx
    loopage:
    inc word [angle]
    fld dword [pie]
    fimul word [angle]
    fsin
    fimul word [xradius]
    fistp word [x]
    fimul word [yradius]
    fistp word [y]
    mov al,15
    mov dx,[x]
    add dx,ax
    mov cx,[y]
    add cx,bx
    ;xor ax,ax
    ;int 16h
    inc bl
    mov ah,0Ch
    mov al,bl
    int 10h
    cmp word [angle],360
    je endage
    jb loopage
    mov ax,0a000h
    mov es,ax
    xor ax,ax
    mov cx,32000
    rep stosw
    endage:
    xor ax,ax
    int 16h
    ret
    y dw 0
    x dw 0
    angle dw 0
    a dw -1
    pie dd 0.01756
    yradius dw 50
    one dw 1
    xradius dw 50
    float dd 0
我想更改此代码以绘制 f(x)=x*sin(1/x) 曲线。
我已经尝试了几件事来更改上面代码中的以下部分:
    ...
    fld dword [pie]
    fimul word [angle]
    fsin
    fimul word [xradius]
    fistp word [x]
    fimul word [yradius]
    fistp word [y]
    ...
然而到目前为止还没有任何结果。
请问你能帮帮我吗?
=========== 已编辑:====================
我试过你的代码。现在我的代码如下所示:
    ...
    loopage:
    ;inc word [angle]
    ; FP0 <- 1
    fld1
    ; FP0 = FP0 / [pie] / [angle], is equal to FP0 / ([pie] * [angle])
    fidiv dword [pie]
    fidiv word [angle]
    fsin
    fimul dword [pie]
    fimul word [angle]
    fimul word [yradius]
    fistp word [y]
    mov al,15
    mov dx,[angle]
    add dx,ax
    mov cx,[y]
    add cx,bx
    ...
但是,此代码仅绘制一条线,而不是预期的 x*sin(1/x) 曲线。你能帮我弄清楚可能是什么问题吗?