MASMで変換
 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
;コードセグメント=================================
CDSEG   SEGMENT
        ASSUME     cs:CDSEG, ds:DTSEG, ss:STSEG
START:
        mov        ax, DTSEG
        mov        ds, ax

        mov        di, 15            ;dxレジスタの初期値を15にする
        mov        ax, 43690         ;axレジスタに2進数に変換したい値を入れる
        mov        bx, 2             ;bxレジスタに2を入れる

FOR1:
        cmp        di, 0
        jl         END1              ;diが0より小さい場合はEND1へ
        mov        dx, 0             ;dxレジスタに0を入れる
        div        bx                ;ax=ax/bx 余りdx
        
        ;dxレジスタに余りが入っているのでそれを元に処理をする
        cmp        dx, 0
        jz         LBL_EQ_ZERO       ;余りが0の場合はLBL_EQ_ZEROへ
        mov        NISIN[di], '1'    ;余りが1だったので1にする
LBL_EQ_ZERO:
        dec        di                ;di=di-1
        jmp        FOR1              ;FOR1へ
END1:
        ;答えを出力する
        mov        ah,09H
        mov        dx,OFFSET NISIN
        int        21H

        ;終了
        mov        ah, 4CH
        int        21H
CDSEG   ENDS

;データセグメント=================================
DTSEG   SEGMENT
NISIN   DB    16 DUP('0'), '$'       ;2進数を入れる
DTSEG   ENDS

;スタックセグメント===============================
STSEG   SEGMENT    STACK
        DB         100H DUP(?)
STSEG   ENDS

        END        START

TOPに戻る   いろいろな言語へ戻る