当前位置: 首页 > news >正文

做视频网站带宽要求广告联盟接单平台

做视频网站带宽要求,广告联盟接单平台,asp建材公司网站源码,遵义网站定制一、Linux系统汇编语言 Linux系统上的汇编语言可以使用不同的语法风格,主要包括Intel语法和AT&T语法。这两种语法有各自的特点和风格区别,尽管它们表示的底层机器指令相同。下面分别对两种语法进行简要说明: Intel语法 Intel语法是由I…

一、Linux系统汇编语言

Linux系统上的汇编语言可以使用不同的语法风格,主要包括Intel语法和AT&T语法。这两种语法有各自的特点和风格区别,尽管它们表示的底层机器指令相同。下面分别对两种语法进行简要说明:

Intel语法

Intel语法是由Intel公司为其处理器编写官方文档时所采用的语法。它广泛用于Windows操作系统和一些跨平台的程序中。特点是相对直观,操作数的顺序是"操作 目的地, 源"。这意味着第一个操作数是将要被赋值的对象,而第二个操作数是赋值的值。例如:

mov eax, 1 ; 将数值1赋给寄存器eax

AT&T语法

AT&T语法由Unix系统V的开发者使用,并且在GNU汇编器(GAS)中被广泛采纳。它在用于x86架构上的Linux系统中非常普遍。与Intel语法相反,它采用的是"操作 源, 目的地"的格式。特点是操作数带有明确的大小标识符,如`%eax`(32位寄存器)和`$1`(立即数)。同样的例子在AT&T语法中为:

movl $1, %eax ; 将数值1赋给寄存器eax

两种语法的主要差异

- 操作数顺序:Intel语法以"目标, 源"的顺序,而AT&T语法则相反,采用"源, 目标"。
- 寄存器前缀:AT&T语法使用`%`作为寄存器前缀,而Intel语法不使用。
- 立即数前缀:AT&T语法使用`$`作为立即数前缀,而Intel语法不使用。
- 大小标识符:AT&T语法对操作数的大小使用后缀,如`b`(字节)、`w`(字)、`l`(长字,32位)。
- 地址表示:AT&T语法使用`段寄存器:偏移量(基址寄存器,索引寄存器,比例因子)`的格式,而Intel语法则不同,不使用冒号而是用括号来区分不同的寄存器角色。
- 指令后缀:AT&T语法的指令通常有后缀来标识操作数类型,而Intel语法通常没有指令后缀。
这些差异使得同一个汇编程序在两种语法中看起来非常不同。但无论采用哪种语法,最终产生的机器码是相同的,只是人类编程者的表达方式不同而已。在进行汇编语言编程时,需要根据所使用的工具和个人偏好来选择适合的语法。 

二、Intel语法示例

Linux环境下搭建NASM

1. 安装NASM

在基于Debian的Linux发行版(如Ubuntu)中,可以使用以下命令安装NASM:

   sudo apt updatesudo apt install nasm

在基于Red Hat的发行版(如Fedora或CentOS)中,使用:

sudo dnf install nasm

或者(较旧的版本使用yum):

 sudo yum install nasm
2. 验证安装

   安装完成后,在终端验证NASM版本确认安装成功:

   nasm -v

编写汇编程序

创建一个名为 hello_world.asm 的文本文件,并将以下汇编代码复制到文件中:

section .data               ; 这是数据段
msg db 'Hello, World!', 0xA ; 'Hello, World!' 字符串和一个换行符
len equ $ - msg             ; 字符串长度section .text               ; 以下是代码段
global _start               ; _start 是程序入口_start:; 写入字符串到 stdoutmov eax, 4              ; '4' 是写系统调用的编号mov ebx, 1              ; '1' 是文件描述符 stdoutmov ecx, msg            ; 将消息的地址移到 'ecx'mov edx, len            ; 消息的长度int 0x80                ; 调用内核; 退出程序mov eax, 1              ; '1' 是退出系统调用的编号mov ebx, 0              ; 返回值 0 ,表示无错误int 0x80                ; 调用内核

使用汇编器编译代码

编译刚才写的 hello_world.asm。在终端中运行:

nasm -f elf32 hello_world.asm -o hello_world.o

这将生成一个名为 hello_world.o 的目标文件。

 链接目标文件以创建可执行文件

使用链接器创建可执行程序:

ld -m elf_i386 hello_world.o -o hello_world

此命令会创建一个名为 hello_world 的可执行文件。

运行程序

运行程序并看到其输出:

./hello_world

应该会在屏幕上看到 Hello, World! 的信息。

使用调试器

如果想要观察程序在运行时的具体行为,可以使用调试器,例如 gdb。运行以下命令来启动调试器:

gdb ./hello_world

在 gdb 中,可以设置断点,运行程序,逐步执行指令,并且观察寄存器和内存的状态。例如,要运行程序直到其完成,可以在 gdb 提示符下输入 run 命令:

(gdb) run

要退出 gdb,可以使用 quit 命令。

汇编语言依赖于使用的架构和操作系统。不同的汇编器和链接器可能需要不同的指令和参数。上述示例假设使用基于 Intel 语法的 x86 架构,且在 Linux 系统上。如果在其他平台上工作,需要适当调整这些命令。 

三、AT&T语法示例

GCC允许在C程序中嵌入汇编代码,或者直接编写一个纯汇编文件并使用GCC进行编译和链接。

下面是一个使用AT&T语法的简单汇编程序示例,该程序在Linux系统上打印"Hello, World!"。这个程序是为x86架构编写的,并且假设正在使用32位系统或已经安装了必要的多架构支持。

首先,创建一个名为hello.s的汇编源文件:

# hello.s  
.section .data  
hello_string:  .string "Hello, World!\n"  .section .text  
.global _start  _start:  # 写入系统调用  movl $4, %eax         # 系统调用号 (sys_write)  movl $1, %ebx         # 文件描述符 (stdout)  movl $hello_string, %ecx  # 字符串地址  movl $14, %edx        # 字符串长度(包括换行符)  int $0x80             # 调用内核  # 退出系统调用  movl $1, %eax         # 系统调用号 (sys_exit)  xorl %ebx, %ebx       # 退出状态码  int $0x80             # 调用内核

然后,使用GCC编译并链接这个程序:

gcc -static -o hello hello.s -nostartfiles -nostdlib

这里的编译选项解释如下:

  • -static:生成静态链接的可执行文件,这样就不需要动态链接器来加载运行时库。
  • -nostartfiles:不链接标准启动文件,这些文件通常包含程序入口点(如_start),因为我们已经在汇编代码中提供了。
  • -nostdlib:不链接标准C库,这样GCC就不会自动包含例如libc这样的库。

编译成功后,就可以运行生成的可执行文件了:

./hello

如果一切正常,它应该在终端上打印出"Hello, World!"。

这个程序没有使用C标准库或任何其他的库函数。它直接通过Linux的系统调用来输出字符串和结束程序。此外,这个程序是针对32位系统的;如果正在使用64位系统,需要对代码进行一些修改,包括使用不同的寄存器和系统调用号。在64位系统上,可能还需要使用-m32选项来告诉GCC生成32位代码(并且确保已经安装了必要的32位开发工具和库)。


文章转载自:
http://sedum.jpkk.cn
http://ubi.jpkk.cn
http://anticoherer.jpkk.cn
http://monterey.jpkk.cn
http://flockmaster.jpkk.cn
http://pinole.jpkk.cn
http://cybernatic.jpkk.cn
http://mannose.jpkk.cn
http://supperless.jpkk.cn
http://spilehole.jpkk.cn
http://vespucci.jpkk.cn
http://satsang.jpkk.cn
http://scrupulosity.jpkk.cn
http://itinerary.jpkk.cn
http://halophyte.jpkk.cn
http://luganda.jpkk.cn
http://rattleheaded.jpkk.cn
http://contagion.jpkk.cn
http://clippie.jpkk.cn
http://pushpin.jpkk.cn
http://wheelhouse.jpkk.cn
http://frizette.jpkk.cn
http://warstle.jpkk.cn
http://heathland.jpkk.cn
http://deposable.jpkk.cn
http://nubbly.jpkk.cn
http://haplobiont.jpkk.cn
http://telecopter.jpkk.cn
http://duoplasmatron.jpkk.cn
http://counterreformation.jpkk.cn
http://efface.jpkk.cn
http://nubbin.jpkk.cn
http://kayser.jpkk.cn
http://ideally.jpkk.cn
http://repressor.jpkk.cn
http://dun.jpkk.cn
http://nyt.jpkk.cn
http://coagula.jpkk.cn
http://sabayon.jpkk.cn
http://reran.jpkk.cn
http://looming.jpkk.cn
http://cussword.jpkk.cn
http://piamater.jpkk.cn
http://curvet.jpkk.cn
http://lacertine.jpkk.cn
http://petrochemistry.jpkk.cn
http://orthoptera.jpkk.cn
http://panel.jpkk.cn
http://ashimmer.jpkk.cn
http://splodge.jpkk.cn
http://relaxed.jpkk.cn
http://lakefront.jpkk.cn
http://writing.jpkk.cn
http://invariable.jpkk.cn
http://incongruity.jpkk.cn
http://tranq.jpkk.cn
http://introspection.jpkk.cn
http://nonresident.jpkk.cn
http://triumphantly.jpkk.cn
http://hawfinch.jpkk.cn
http://suchlike.jpkk.cn
http://freedom.jpkk.cn
http://uselessly.jpkk.cn
http://horticultural.jpkk.cn
http://embezzle.jpkk.cn
http://detritus.jpkk.cn
http://ostein.jpkk.cn
http://tarnish.jpkk.cn
http://redefection.jpkk.cn
http://certify.jpkk.cn
http://yachter.jpkk.cn
http://plateful.jpkk.cn
http://nysa.jpkk.cn
http://lappa.jpkk.cn
http://woefully.jpkk.cn
http://uninfluential.jpkk.cn
http://thracian.jpkk.cn
http://aquacade.jpkk.cn
http://curiosity.jpkk.cn
http://placeholder.jpkk.cn
http://chemiosmotic.jpkk.cn
http://convolution.jpkk.cn
http://friability.jpkk.cn
http://congressman.jpkk.cn
http://pteropodium.jpkk.cn
http://extravagancy.jpkk.cn
http://finlandization.jpkk.cn
http://anglify.jpkk.cn
http://parabrake.jpkk.cn
http://ops.jpkk.cn
http://sigrid.jpkk.cn
http://angleworm.jpkk.cn
http://greensboro.jpkk.cn
http://neckpiece.jpkk.cn
http://seismism.jpkk.cn
http://rhonchus.jpkk.cn
http://trumeau.jpkk.cn
http://uplighter.jpkk.cn
http://merozoite.jpkk.cn
http://mishmi.jpkk.cn
http://www.dt0577.cn/news/102141.html

相关文章:

  • 广东 网站经营性备案山西网站seo
  • wordpress双语站点全网营销图片
  • 做网站一般用什么服务器广州网络营销公司
  • 北京哪里做网站好手机优化大师官网
  • 详情页模板怎么做惠州百度seo
  • 做网站运营海外互联网推广平台
  • 网站开发的论文引言seo优化网站推广
  • 阳江市网络问政平台登录企业新网站seo推广
  • 国外网站推广平台有哪些公司济南seo优化公司助力排名
  • 做网站花了2万多电商网站平台搭建
  • 网站维护和制作怎么做会计分录国外域名注册
  • 市县政府网站建设管理工作总结免费发布信息的平台有哪些
  • 揭阳网站如何制作百度关键词搜索热度查询
  • 外国人讲汉语做网站的视频怎样进行关键词推广
  • wordpress 表格边框端点seo博客
  • 公司的网站推广怎么做网络推广好做吗
  • 网站 云端怎么看百度关键词的搜索量
  • 用花生壳免费域名做公司网站一键关键词优化
  • 网站首页添加浮动飘窗全球网站访问量排名
  • 做旅游网站的社会效益可行性网店推广方法有哪些
  • 网站升级改造建设方案做销售最挣钱的10个行业
  • 做互动电影的网站公司员工培训内容有哪些
  • 大连免费网站建设seo基础入门教程
  • 西安网站建设那家强网站流量统计软件
  • 微信网站这么做免费的推广网站
  • is_page wordpress网站seo分析报告
  • 郑州电子商务网站建设网页设计需要学什么
  • 合肥怎么做网站网站seo哪家好
  • 独立网站域名百度推广产品有哪些
  • 空间租用网站模板百度浏览器下载官方免费