装配x86对指令的清晰度,非常简单

时间:2014-07-17 07:31:02

标签: assembly x86

有人可以给我一些关于指令"调用crlf"的背景​​知识。呢?我在代码中是否需要这些资源时遇到一些麻烦。感谢。

2 个答案:

答案 0 :(得分:0)

Could someone give me some background on what the instruction "call crlf" does?

当您在汇编中使用说明 call时,jumpingaddress,从那里执行,直到您点击ret指令并返回到您打电话的地方,通常人们称这些标签和相关代码subroutines, methods, functions, procedures

另外,取决于子例程的实现方式取决于您需要遵循的calling conventions (传递参数的方式和位置以及获取返回值)


CRLF可能是label (表示地址的符号表示)

这可能代表carriage return& line feed

哪个代表ascii '\r'& '\n'

代表十六进制0xd&分别为0xa


'\r' & '\n'

之间的差异
  • Mac使用'\r' CR作为换行符。

  • Unix/Linux使用'\n' LF换行。

  • Windows使用"\r\n" CRLF

证明Windows这是在这个名为text.txt的文件的转储中,其中包含2次按enter键;

c:\Users\James\Desktop>dump text.txt
0D 0A 0D 0A 0A -- -- -- -- -- -- -- -- -- -- --  | .....-----------

并快速在Linux VM上运行;

james@james-VirtualBox:~Files$ hexdump -C text.txt
00000000    0a 0a                                           |...|
00000002

我没有mac所以我无法证明他们使用'\r'换行。


背景 (来自哪里)

基本上你需要考虑typewriters& printers - see this googled image;

  • carriage return

    1)"在打字机或计算机打印机上,将其返回到行首的操作。"

    2)"最初用信号通知设备执行回车的控制字符(ASCII中的0x0D,缩写为CR),但现在仅表示文本行的结尾。&#34 ;

  • line feed

    1)"在打字机上,当执行回车时,托架滚轮的动作将页面向上推一行,两行或一行半(在其他地方设置)。&#34 ;

    2)"字符(ASCII中的0x0a),在电传打字机或打印机中将纸张前进一行"

答案 1 :(得分:0)

这是一个名为" crlf"的过程的过程调用。它的作用是任何人的猜测;但它可能与基于Windows的平台上的换行序列有关。 CR代表字符#13又名回车,LF代表#10,换行。在Windows中,行以CR / LF字符对终止。一些非Windows工具也尊重它们;值得注意的是,这是一些突出的Internet协议(如HTTP)中的行分隔符。

该过程在控制台上打印CR / LF,或将它们存储在某些字符串缓冲区或其他内容中。没有它的代码,就无法分辨。