汇编中奇怪的字符?

时间:2013-06-16 19:02:16

标签: assembly

我写了以下代码:

 .386
 .model small
 .stack 100h

 .data
    text db "Paper",0
 .code
  start :

  lea dx , text
  mov ah , 9h
  int 21h

  mov ah , 4ch
  int 21h

  end start

  end

问题是它显示了中间正确句子的奇怪字符,究竟是什么问题?

1 个答案:

答案 0 :(得分:3)

; your code
start:
mov ax, @data
mov ds, ax
;your code

我认为这会解决你的问题。 Dos,在加载.com文件时,设置cs = ds = es。当加载.exe格式时cs指向您的代码时不是这样,当然,ds(和es?)指向您的PSP(程序段前缀),这是通常不是您的数据存在的地方......您必须自己设置ds(如果您打算使用es)。

“为什么学习16位汇编?”是一个很好的问题。 “为什么要学习装配?”是另一个好问题。有可能你永远不会写任何“严肃”的东西。但它允许您以HLL不会的方式了解“引擎盖下”的内容,16位允许您了解分段内存模型。 32位代码也是分段的,但是当段“不同”时,它们通常指向相同的内存,你通常可以忽略它们 - 操作系统会为你完成所有这些。

此外,我们中的一些人疯狂到认为它很有趣!