わかりましたので、質問は簡単です。2 つのランダムなバイトがある場合、たとえば 150 (a[0]) と 215(b[0]) を追加します。明らかにそれらの合計はバイトに収まらないので、それらを追加するとオーバーフローが発生します。バイトの1つをalに格納してcbwを実行しようとしたので、同じ量が単語axでのみ表され、2番目のバイトがそれに追加されますが、理解できないことがあります動作しません。サンプルコードは次のとおりです。
data segment
a db 150,182,211
b db 215,214,236
data ends
code segment
start:
mov ax,data
mov ds,ax
lea si,a ; these 2 shouldn't be here since i realised eventually that
; i could use
lea di,b ; a constant for memory addressing and not necessarily a
; a register
mov ax,0000
mov bl,a[0]
mov al,b[0]
cbw
adc bx,ax ; so this didn't work out well
mov ax,0000
mov al,a[0]
cbw ; convert one of the bytes into a word
mov cx,ax ; and save it in cx
mov al,b[0]
cbw ; also convert the other byte into the word ax
add ax,cx ; add the two words
; and that also failed