<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://www.gentoo-zh.org/extern.php?action=feed&amp;tid=595&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo server 交流社区(黑客实战靶场) / 第一个汇编]]></title>
		<link>https://www.gentoo-zh.org/viewtopic.php?id=595</link>
		<description><![CDATA[第一个汇编 最近发表的帖子。]]></description>
		<lastBuildDate>Fri, 25 Nov 2022 03:28:11 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[第一个汇编]]></title>
			<link>https://www.gentoo-zh.org/viewtopic.php?pid=636#p636</link>
			<description><![CDATA[<p>section .data<br />&#160; &#160; &#160; &#160; &#160;hello:&#160; &#160; &#160; &#160; db &#039;Hello World!/n&#039;,10&#160; &#160; &#160;;’Hello World!’，加换行符<br />&#160; &#160; &#160; &#160; &#160;helloLen:&#160; equ $-hello&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;;’Hello World!’字符串长度<br />section .text<br />&#160; &#160; &#160; &#160; &#160;global _start<br />_start:<br />&#160; &#160; &#160; &#160; &#160;move ax,4&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ;4:sys_write系统调用号<br />&#160; &#160; &#160; &#160; &#160;mov ebx,1&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ;1:标准输出文件描述符<br />&#160; &#160; &#160; &#160; &#160;mov ecx,hello&#160; &#160; &#160; &#160; &#160; &#160; &#160; ;放hello字符串的首地址<br />&#160; &#160; &#160; &#160; &#160;mov edx,helloLen&#160; &#160; &#160; &#160; &#160; &#160;;hello字符串长度<br />&#160; &#160; &#160; &#160; &#160;int 80h&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ;软中断，陷入内核<br />&#160; &#160; &#160; &#160; &#160;move ax,1&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ;sys_exit系统调用号<br />&#160; &#160; &#160; &#160; &#160;mov ebx,0&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ;返回值，0表示没有错误.exit(0)<br />&#160; &#160; &#160; &#160; &#160;int 80h&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ;这里有必要解释下，int 80h实际上是执行一个中断，叫做软中断，int 80h执行之后，中断会返回到原来发生中断的那条指令的下一条指令的地址开始取指，可以阅读我的另一篇关于ARM流水线的文章， 所以，mov ax,1这条指令之后的又需要再次产生一个软中断陷入内核来执行exit操作。即需要再调用一次int 80h,你只需要记住，每执行一个系统调用，都需要跟一条int 80h 来陷入内核执行。</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Fri, 25 Nov 2022 03:28:11 +0000</pubDate>
			<guid>https://www.gentoo-zh.org/viewtopic.php?pid=636#p636</guid>
		</item>
	</channel>
</rss>
