0

私はまだ x86 アセンブリに頭を悩ませているので、6 と 7 を乗算し、データを EAX に移動して結果を出力するこの小さなプログラムを作成しました。正常にコンパイルされ、正常に実行されますが、42 を出力する代わりに、42 番目の ASCII 文字を出力します。私はこのフォーラムで 1 文字の数字を印刷する方法を持っていますが、今は複数桁の数字を印刷する方法を理解する必要があります。これが私のコードです:

.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
    adrs dd 0
.code
start:
    mov eax, 6
    mov ebx, 7
    imul eax, ebx
    add eax, 48
    mov adrs, eax
    invoke StdOut, addr adrs
    invoke ExitProcess, 0
end start

要約すると、データを個々の文字に分割して印刷できるようにする方法を理解する必要があります。どんな助けでも素晴らしいでしょう。

よろしく、

プログラム

4

2 に答える 2

3

数を繰り返し 10 で割ります。残り物を集める。それらに '0' の ASCII コードを追加して印刷します。

于 2012-05-07T00:58:40.470 に答える