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 (decimal)) 值会返回。(ASCII字符)

但奇怪的数字是返回。发生了什么?我不明白这个结果。

以及如何修复此代码?

4

1 回答 1

1

您没有设置 ds。

mov dx, @data

你的意思是这样的:

push @data
pop ds
于 2012-11-29T04:06:43.003 回答