1

nasm32、x86アセンブリ言語を使用しています。データセグメントからいくつかの数値を読み取りたい。

.model small 
.stack
.data 
  DATA1 DB 53H,"$"
  DATA2 DB 17H,"$"
.code
.startup
  mov dx, @data
  mov dx, offset DATA1
  add dl,30h
  mov ah, 02h
  int 21h

  mov dl, dh
  add dl, 30h
  mov ah, 02h
  int 12h
  .exit
end

このコードはちょうど

20

DATA1 53h(= 83(10進数))の値が返されると思いました。(ASCII文字で)

しかし、奇妙な数は戻りです。どうした?この結果がわかりません。

そして、どうすればこのコードを修正できますか?

4

1 に答える 1

1

あなたはdsを設定していません。

mov dx, @data

次のような意味ですか?

push @data
pop ds
于 2012-11-29T04:06:43.003 に答える