(a * (bc) * d) を計算するアセンブリ プログラムを作成する必要があります。ここで、a、b、c、d は符号付き 8 ビット形式でデータ セグメントに格納される変数です。(結果は符号付き 32 ビット数値として表されると想定する必要があります)
私は次のコードを書きました
data segment
a db 1
b db 9
c db 3
d db 4
x dw ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
; what would the difference be in the following three lines if the variables where signed?
mov al, b
sub al,c
mul a
mul d
;treating result as a 16bit - how about signed?
mov x,ax
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start
私の質問は次のとおりです。レジストリのサイズ (al,ah,bh,bl, ecc... 8bit), (ax,bx,cd, dx、16 ビット)?
DW変数に格納する以外に、32ビット変数を16ビット変数とは異なる方法で扱うにはどうすればよいですか?
便宜上、コードの関連部分に上記の質問の短いバージョンを書きました。
誰か助けてくれませんか?お時間をいただきありがとうございます。