0

レジスタが TASM またはアセンブリでどのように機能するかについて、かなり混乱しています。特にその中に整数値を割り当てる場合。明確なチュートリアルが本当に見つかりません。

誰かがこれらのレジスタの使用法を説明してくれませんか:

AX, BX, CX, DX,

AH AL, BL BH, CL CH, DL DH

ループ カウンターに CX を使用するプログラムを見ました。同時に特定の整数値のホストとしても使用できますか?

正直に言うと、頭の中にたくさんの質問があります。x86で足し算、引き算をする方法すら知りません

私たちの教授は本当に参考になるものを何も与えてくれませんでした。アセンブリで数学演算を実行する方法さえ教えられませんでした。講義中、簡単に説明されたコードのみが与えられます (各行が何のためにあるのかを説明せずにコードがどのように機能するかなど)。活動中に私たちがすることは、彼のコードをコピーして貼り付け、目的もなく変更することだけです。

そして、ええ、彼はまだ私たちの知る範囲内にさえない課題として与えました.

ここで暴言を吐いてすみません。

更新: ネストされたループを作成したいのですが、ここに疑似コードがあります。

; for (CX = 6; CX != 0; CX--) { // PSEUDO CODE, 
    ; for (BL = 0; BL != 7-CX; BL++) { 
        ; putchar(M+BL);
    ; }
    ; M--;
    ; putchar(10);
    ; putchar(13);
; }

レジスタがどのように機能するのか正確にわからないため、レジスタに値を設定しようとして問題が発生しています。私が何を間違えたのか説明してください。

4

2 に答える 2

0

このリンクを試してください: x86 アセンブリ リファレンス シート

より具体的な質問がなければ、ここにいくつかの基本があります。申し訳ありませんがチュートリアルへのリンクがありません。これは記憶からのものです。具体的な質問がある場合はお知らせください。更新します

; assign 100 to ax (16 bit)
mov ax, 100

; add ax to bx
add bx,ax

; add to ax, memory refereced by dx
add ax,[dx]

; add 8 bit 100 to al
add al, 100

ah、al、bl などは 8 ビット値を保持します

ax、bx、cx などは 16 ビット値を保持します

eax、ebx などは 32 ビット値を保持します

于 2013-03-14T02:28:44.593 に答える