0

文字列の入力、入力した文字列の表示、文字列の大文字から小文字への変換に行き詰まっています。

emu8086.inc を使用する必要がありますが、以下のコードを変換して、数値/整数の代わりに文字列を受け入れる方法がわかりません。この問題についてさらに案内してくれる人はいますか?

8086 asm コード:

include 'emu8086.inc'

ORG    100h 

LEA    SI, msg1      
CALL   print_string   
CALL   scan_num       

MOV    AX, CX       

; print the following string:
CALL   pthis
DB  13, 10, 'You have entered: ', 0

CALL   print_num      

RET          

msg1   DB  'Enter the number: ', 0

DEFINE_SCAN_NUM
DEFINE_PRINT_STRING
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS 
DEFINE_PTHIS
END              

前もって感謝します。

4

1 に答える 1

0

emu8086.inc に含まれる関数の内容がわかりません。

Linux システムでは、システム コールを使用できる場合がありますが、Linux を使用したことがないかどうかはわかりません。Windows では、MSVCRT.dll とリンクして scanf のような C 関数を含めるか、Kernell32.dll とリンクする Windows 提供のコンソール関数 (「コンソール関数」を参照) を含めるのが最適です。dll にリンクして個々の関数を呼び出す方法については、アセンブラのドキュメントを参照してください。C ランタイム MSVCRT.dll には、文字列を大文字に変換する関数「toupper」も含まれています。よくわかりませんが、Windowsにもおそらく同様の機能があります。

于 2012-12-07T20:56:56.930 に答える