首页>>科技 >>内容

汇编程序步骤,汇编学习入门之第一个汇编程序

发布时间:2023-08-12 18:40:20编辑:温柔的背包来源:

很多朋友对汇编程序步骤,汇编学习入门之第一个汇编程序不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

汇编程序步骤,汇编学习入门之第一个汇编程序

经过理论上的准备,现在正式进入语言的实际操作和效果展示。本文主要介绍常用命令以及命令的通常用法;编写和编译通用汇编程序;读取机器代码。注意:本文中的汇编程序是在X86环境下,移植到其他平台可能会出错。*一、常用命令汇编代码主要由助记符和操作数组成,格式通常如下:MOV AX,0x10。

上面的例子只是一个简单的例子。事实上,mov指令可以有很多用途,如下图所示。摘要上图,有如下关系:MOV目的,来源:MOV reg/mem,reg/mem/Imm,其中:reg寄存器mem内存Imm立即数后面也可以跟一个数来表示位数,比如imm32,可以操作32位数据。必须清楚,源操作数编号必须与目标操作数编号相同。注:了解更多指令语法,参考文末百度云书。

对于机器来说,这种编码组织是有效率的,而作为人类,这种效率无疑增加了复杂性。现代不是电脑刚出来的时候。现代工程师应该追求最优解。经过工程师的迭代,在汇编语言基础上开发的编译器一般都有伪指令、标记等功能,使源文件可读性很高。例:Start:标签声明该段代码的代码号,标签不会参与编译过程。

MOV AX,0x100x10被复制到AX寄存器MOV CX0x 00;0x00被复制到CX的CX寄存器ADD AXAX寄存器值加CX寄存器值将上述程序存储起来,命名为10_01.asm,是汇编源文件,由Nasm编译。编译命令:nasm -f bin。\ \ 10_01.asm-o. \ \ 10 _ 01.bin其中:nasm executive program 10 _ 01.asm源文件-f bin指定输出文件格式为。bin注:更多指令语法请参考文末百度云书。编译后,打开。bin文件来获取以下数据:

为了研究方便,输出文件被反汇编。反编译。0x7c00处的bin文件。使用命令:ndisasm-o0x7c00。\ \ 10 _ 01.bin. \ \ 10 _ 01-1.asm获取:00007c00b81000 movax,0x1000007c03b90000 movcx,0x0000007c06 00。

B8是mov AX指令对应的机器码,因为AX是16位宽,0x10是8位,所以加了两个0,凑成16位,X86立即先按低顺序再按高顺序计数0010,也就是1000;B9同理。01是add指令的机器码,C8表示AX和CX两个寄存器的值相加。二、Helloworld现在我们已经知道了简单的汇编语言,我们必须检查一下效果。为此,helloworld迟到了!1、建立helloworld.asm2、输入以下指令org 07c00h程序开始位07c00h

mov ax,cs mov ds,ax mov es,ax call DispStr jmp $; Infinite loop dispstr: The string calls the functions mov ax, BootMessage mov bp, ax; Serial address mov cx, 11; The string length mov ax, 01301hAH=13, Al=01MovBx, 000ah black background green word mov dl, 0Int10H10Hour interrupt ret BootMessage:db 'Helloworld!' Multiplied by 510-($-$) db 0; Generate a string of 512-byte binary codes dw0xaa55; End Flag3、 Compilation

以上知识分享希望能够帮助到大家!