2

私は割り当てのためにこのコードに取り組んできましたが、出力が正しくないようです。誰でも私を助けてもらえますか?

注: プログラムは MASM でコンパイルされます

  1. reg-memおよびreg-regアーキテクチャ コマンドのみを使用できます。
  2. MOVADDDECJMP、またはJcc命令のみを使用してください。
  3. 4 つのメイン レジスタ、つまりEAXEBXECX、およびEDXのみを、ESIレジスタおよびそれらのサブ レジスタと共に算術/論理演算に使用します。
  4. 文字列メモリ変数以外には、他のメモリ変数は使用できません。

コードは次のとおりです。

INCLUDE Irvine32.inc
.data

string1 byte "Enter number to generate Fibonacci series: ",0
string2 byte "Fibonacci is ",0

.code
main PROC
call    DumpRegs;
mov     edx,offset string1;
call    writestring;
call    ReadInt;
mov     ecx,eax;
mov     eax,1;
call    DumpRegs;
dec     ecx;
mov     esi,eax;
JMP     Jumpzero;
mov edx, offset string2;    
call writeint           ;   Display the contents of eax register on the output device

Jumpzero:
add     eax,esi;
call    DumpRegs;
inc     esi;
dec     ecx
jnz     Jumpzero
exit
MAIN ENDP   
END main
4

3 に答える 3

0
; ...
call ReadInt
mov ecx,eax

mov eax,1
mov edx,eax
call writeint    ; Assuming EDX is incremented by writeint
_generate:
    call writeint
    add eax,edx
    mov edx,eax
loop _generate
; ...
于 2013-04-14T16:08:56.740 に答える