2016-04-21 5 views
0

」が表示されます。奇妙なシンボルが、私はDOSBoxをしてTASM、TLINKおよびTD(デバッガ)を使用してい

私は最近、単純なASM 8086プログラムをプログラミングしようとしました。私は結果を印刷するとき、私は似た出力を得るアドレス0100Hの値を印刷すると仮定されています

enter image description here

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

.MODEL SMALL 
.STACK 
.DATA 
.CODE 
.STARTUP 

MOV SI,0100H 
MOV WORD PTR[SI],31 
MOV DX,0 
MOV AH,09H 
MOV DX,[SI] 
INT 21H 

MOV AH,4CH 
INT 21H 

END 
+0

また、私もDOSBOXを使用しています – Danielix

+3

何を印刷すると思いますか? – Leandros

+0

31 dxで前に移動したが、msdosエラーを表示する--symbols--書き込みに失敗しました、ディスクがいっぱいですか?私のディスクはいっぱいではありません – Danielix

答えて

3

の起動が09Hに設定されている21H割り込みは、DX$終了文字列を出力します。あなたのケースでは、DXには31Hが含まれています。これはゴミを指しているので、ランダムな記号が印刷されています。

データセクション内で印刷する文字列を作成し、DXレジスタを指すようにしてから、printシステムコールを呼び出してください。

関連する問題