0
文字列を反転するために8086アセンブリコードを記述しました。私は組み立てに比較的新しいので、私に負担してください。8086のMASMで文字列を反転できません
ロジックは、 'str1'という文字列を定義することです。これをSIレジスタに移動します。文字列 'str1'が「Hello $」であると仮定した場合、「str1」+ 5のアドレスをSIにロードします。さて、私はアドレスに5000をロードします。 SIからDIに各文字を読み込み、毎回SIをインクリメントし、SIを5ずつ減らします。ここで
は私が場所にアクセスしたとき、私は絶対ゴミ値を取得するコード
assume cs:code,ds:data
data segment
str db "Hello$"
data ends
code segment
start:
mov ax,data
mov ds,ax
cld
mov cx,5h
mov bx,5h
lea si,str
add si,5
mov di,5000h
l1:mov bx,[si]
mov [di],bx
dec si
inc di
loop l1
hlt
code ends
end
である5000 Plzをヘルプのおかげ
どのように場所5000にあるのかわかりますか? –
文字はそれぞれ1バイトですが、2バイトを処理しています。 PS:デバッガの使い方を学んでください。 – Jester
@Jester 1バイトをどのように処理しますか? AXの代わりにALを使うべきですか? –