📝 汇编语言编程教程

24篇技术文档
  汇编-字符串

📅  最后修改于: 2020-11-05 05:08:41        🧑  作者: Mango

在前面的示例中,我们已经使用了可变长度的字符串。可变长度字符串可以根据需要包含任意多个字符。通常,我们通过以下两种方式之一指定字符串的长度:显式存储字符串长度使用前哨字符我们可以使用表示位置计数器当前值的$位置计数器符号来显式存储字符串长度。在以下示例中-$指向字符串变量msg的最后一个字符之后的字节。因此,$ -msg给出字符串的长度。我们也可以写或者,您可以存储字符串后面有个标记字符来分隔字符...

  装配-阵列

📅  最后修改于: 2020-11-05 05:09:01        🧑  作者: Mango

我们已经讨论过,汇编程序的数据定义指令用于为变量分配存储空间。变量也可以用一些特定的值初始化。初始化值可以以十六进制,十进制或二进制形式指定。例如,我们可以通过以下两种方式之一来定义单词变量“ months”-数据定义指令还可用于定义一维数组。让我们定义一维数字数组。上面的定义声明了一个由六个单词组成的数组,每个单词都用数字34、45、56、67、75、89初始化。这分配了2×6 = 12个字节的...

  组装-程序

📅  最后修改于: 2020-11-05 05:09:27        🧑  作者: Mango

过程或子例程在汇编语言中非常重要,因为汇编语言程序往往会很大。程序由名称标识。在此名称之后,将描述执行明确定义的作业的过程主体。该过程的结束由return语句指示。句法以下是定义过程的语法-通过使用CALL指令从另一个函数调用该过程。 CALL指令应将被调用过程的名称作为参数,如下所示-被调用过程通过使用RET指令将控制权返回给调用过程。例让我们编写一个名为sum的非常简单的过程,该过程将存储在E...

  程序集-递归

📅  最后修改于: 2020-11-05 05:09:44        🧑  作者: Mango

递归过程是一个称为自身的过程。递归有两种:直接和间接。在直接递归中,过程调用自身,在间接递归中,第一个过程调用第二个过程,第二个过程依次调用第一个过程。递归可以在许多数学算法中观察到。例如,考虑计算数字阶乘的情况。数字的阶乘由方程式给出-例如:5的阶乘是1 x 2 x 3 x 4 x 5 = 5 x 4的阶乘,这可能是显示递归过程的一个很好的例子。每个递归算法都必须具有结束条件,即,当满足条件时,...

  程序集-宏

📅  最后修改于: 2020-11-05 05:10:04        🧑  作者: Mango

编写宏是确保使用汇编语言进行模块化编程的另一种方法。宏是由名称分配的指令序列,可以在程序中的任何位置使用。在NASM中,宏使用%macro和%endmacro指令定义。宏以%macro指令开头,以%endmacro指令结尾。宏定义的语法-其中,number_of_params指定数字参数,macro_name指定宏的名称。通过使用宏名称和必要的参数来调用宏。当您需要在程序中多次使用某些指令序列时,...

  程序集-文件管理

📅  最后修改于: 2020-11-05 05:10:40        🧑  作者: Mango

系统将任何输入或输出数据视为字节流。有三个标准文件流-标准输入(stdin)标准输出(stdout),和标准错误(stderr)。文件描述符文件描述符是分配给文件的16位整数,作为文件ID。创建新文件或打开现有文件时,文件描述符用于访问文件。标准文件流的文件描述符-stdin,stdout和stderr分别为0、1和2。文件指针文件指针以字节为单位指定文件中后续读/写操作的位置。每个文件都被视为字...

  程序集-内存管理

📅  最后修改于: 2020-11-05 05:10:55        🧑  作者: Mango

内核提供sys_brk()系统调用,以分配内存,而无需稍后移动它。该调用在内存中的应用程序映像后面分配内存。此系统函数使您可以在数据部分中设置最高可用地址。该系统调用采用一个参数,这是需要设置的最高内存地址。此值存储在EBX寄存器中。如果发生任何错误,sys_brk()返回-1或返回负错误代码本身。以下示例演示了动态内存分配。例以下程序使用sys_brk()系统调用分配16kb的内存-现场演示编译...

  程序集-有用的资源

📅  最后修改于: 2020-11-05 05:11:15        🧑  作者: Mango

以下资源包含有关程序集编程的其他信息。请使用它们来获得有关该主题的更深入的知识。汇编编程的有用链接Netwide汇编程序(NASM)-NASM的专用站点,可为您提供有关其版本,下载,文档,新闻和所有内容的最新更新。Linux Assembly-如果您要查找有关类似UNIX的操作系统(Linux / BSD / BeOS / etc)下的汇编编程的信息,那么这里是正确的地方。有关汇编语言的Wiki页...

  讨论汇编编程

📅  最后修改于: 2020-11-05 05:11:26        🧑  作者: Mango

汇编语言是特定于特定计算机体系结构的计算机或其他可编程设备的低级编程语言,而大多数高级编程语言通常可跨多个系统移植。汇编语言通过称为NASM,MASM等汇编程序的实用程序转换为可执行的机器代码。...