0
ループを使用して文字を垂直に印刷する方法はいくつかあります。たとえば、アセンブリ言語で(0,0)から(0,10)まで 'l'を印刷します。私はemu8086を使用しています。私は、これらの命令が行うことになっている何列アセンブリ言語で垂直文字を印刷する方法
org 100h
mov ax, 3
mov ah, 0
mov al, 3
int 10h
mov cl,10
print:
mov ah,02
mov bh,0
mov dh,cl ;y
mov dl,0 ; x
int 10h
mov ah,09
mov bh,0
mov bl,00Fh
mov al,'l'
mov cx, 1
int 10h
loop print
ret
あなたは「縦に印刷する」とはどういう意味ですか? 'l'を' -'として表示するか、 'abc'のような文字列の各文字を1行に出力しますか? –
はい。それを行う方法は何百万もあります。何十億もの方法があれば、私はあなたがしようとしていることは間違いなく効くだろうと言うことを敢えてします。 (ただし、フォントデータを変更しない限り、テキストモードの文字は上にとどまります)=>あなたの質問を編集し、多くの情報を追加します(回転文字、gfxモード、何を試しましたか?あなたは解決していますか?)今のように、これはあまりにも広すぎる/曖昧なものです – Ped7g
8ビット=値0..255または-128 .. + 127(またはあなたのコードでコードするための他の解釈)。 16ビット= 0..65535または-32768 .. + 32767(またはあなたがコードしているもの)。 'dh'は' dx'の上位8ビット(16bレジスタ)のエイリアスです。 'cx'は16ビットのレジスタです。普通の 'mov'は、異なるデータサイズの変換を扱うことができません(' movzx/movsx'はより小さなサイズの値を拡張できます)。あなたのケースでは、 'mov dh、cl'はあなたが望むものを達成します。なぜなら、' cx'ウィルは10だけしか通らないからです。1の範囲であり、16ビットのレジスタでは、このような小さい数のために4ビットのみが有効に使用されるので、低い8ビットの「cl」のみを使用することはOKです。 – Ped7g