汇编:从字符/字符串文字调用的回声段符号¶[或任何扩展的ASCII字符]

时间:2014-02-20 13:08:04

标签: assembly character echo tasm

使用TASM和TLINK进行汇编:

我可以使用mov dl, 14hmov dl, 20来显示 段落符号。这是十进制和十六进制值要求那个符号。
已经表明它已经在那里得到了支持......

但是,从文字调用的回声会显示不同的字符,使用mov dx, '¶'这会回显此字符,这让我感到惊讶的是因为从128开始的那些字符不能用文字回显。

enter image description here

CODE:

.model small
.stack 100h
.code
    mov ah, 02h

    mov dl, 20  ;Using ASCII number for paragraph symbol
    int 21h
    mov dx, '¶' ;Using A character literal
    int 21h

    mov ah, 4ch
    int 21h
end

如何回应从字符/字符串文字中调用的段落符号?

2 个答案:

答案 0 :(得分:1)

字符的可视解释取决于使用的字体。 MS Windows将OEM字体用于控制台应用程序。要找出与所需字形对应的代码,请打开控制台窗口(运行CMD.EXE),选择代码页,例如

C:>chcp 437

并尝试在numpad上输入角色的十进制代码,按住Alt键。在我的WinXP计算机上,它使用Alt-0182,即Unicode PILCROW SIGN 0x00B6 = 182。 另请参阅http://vitsoft.info/opta-biw.gif

答案 1 :(得分:0)

这是编码问题。您应该使用十六进制编辑器查看您的文件,以查看文本编辑器如何编码字符。

查看我的编码参考时,位于字符表中的不同位置,具体取决于编码:

  • 在普通的旧CP437(DOS拉丁美洲):0x14
  • CP850中的
  • (欧洲的DOS Latin1):0xF4
  • CP1252中的
  • (Windows Latin1 =窗口本机编码):0xB6

毫不奇怪,CP437 为0xB6,因此您的文件必须在CP1252中进行编码。

在汇编中使用字符litterals没有问题,但编码使用很重要。