<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Assembly</id>
	<title>Assembly - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Assembly"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Assembly&amp;action=history"/>
	<updated>2026-04-04T14:58:44Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Assembly&amp;diff=134&amp;oldid=prev</id>
		<title>2021年12月28日 (二) 01:58 Zhang3</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Assembly&amp;diff=134&amp;oldid=prev"/>
		<updated>2021-12-28T01:58:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年12月28日 (二) 01:58的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;到计算机的核心内部，发送到机器任何部分的每个信号都是一系列电脉冲。 如果电脉冲高，例如5伏，表示发送二进制1位。 如果电脉冲低，例如0伏，表示发送二进制0位。 把4个二进制数字放在一起，你会得到一个半字节(nibble)。 把8个放在一起，你会得到一个字节（byte）。 把16个放在一起，你会得到一个字（word）。 计算机理解这些部分中的命令，但人类可很难理解。 所以人们开发了一种更好的查看此类信息的方式，那就是使用十六进制。 通常不需要16个位就可以显示一个命令，记住以下命令变得更加方便:（译者注：原文这里好像有些错误，应该主要这里是指的机器码）&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;到计算机的核心内部，发送到机器任何部分的每个信号都是一系列电脉冲。 如果电脉冲高，例如5伏，表示发送二进制1位。 如果电脉冲低，例如0伏，表示发送二进制0位。 把4个二进制数字放在一起，你会得到一个半字节(nibble)。 把8个放在一起，你会得到一个字节（byte）。 把16个放在一起，你会得到一个字（word）。 计算机理解这些部分中的命令，但人类可很难理解。 所以人们开发了一种更好的查看此类信息的方式，那就是使用十六进制。 通常不需要16个位就可以显示一个命令，记住以下命令变得更加方便:（译者注：原文这里好像有些错误，应该主要这里是指的机器码）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;90 - No Operation&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;90 - No Operation&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;CC - Break&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;CC - Break&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;E9 - 16 bit jump&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;E9 - 16 bit jump&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;CD - Interrupt&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;CD - Interrupt&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;等。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;等。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;但是很快，人们了解到这种代码需要用户友好，因此发明了汇编代码。 使用汇编代码，你可以用更易于人类阅读的特殊代码表示计算机操作。 例如JMP 跳转、INT 中断、NOP 空操作等。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;但是很快，人们了解到这种代码需要用户友好，因此发明了汇编代码。 使用汇编代码，你可以用更易于人类阅读的特殊代码表示计算机操作。 例如JMP 跳转、INT 中断、NOP 空操作等。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Assembly&amp;diff=133&amp;oldid=prev</id>
		<title>2021年12月28日 (二) 01:56 Zhang3</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Assembly&amp;diff=133&amp;oldid=prev"/>
		<updated>2021-12-28T01:56:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年12月28日 (二) 01:56的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;到计算机的核心内部，发送到机器任何部分的每个信号都是一系列电脉冲。 如果电脉冲高，例如5伏，表示发送二进制1位。 如果电脉冲低，例如0伏，表示发送二进制0位。 把4个二进制数字放在一起，你会得到一个半字节(nibble)。 把8个放在一起，你会得到一个字节（byte）。 把16个放在一起，你会得到一个字（word）。 计算机理解这些部分中的命令，但人类可很难理解。 所以人们开发了一种更好的查看此类信息的方式，那就是使用十六进制。 通常不需要16个位就可以显示一个命令，记住以下命令变得更加方便:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;（译者注：原文这里好些有些错误，应该主要这里是指的机器码）&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;到计算机的核心内部，发送到机器任何部分的每个信号都是一系列电脉冲。 如果电脉冲高，例如5伏，表示发送二进制1位。 如果电脉冲低，例如0伏，表示发送二进制0位。 把4个二进制数字放在一起，你会得到一个半字节(nibble)。 把8个放在一起，你会得到一个字节（byte）。 把16个放在一起，你会得到一个字（word）。 计算机理解这些部分中的命令，但人类可很难理解。 所以人们开发了一种更好的查看此类信息的方式，那就是使用十六进制。 通常不需要16个位就可以显示一个命令，记住以下命令变得更加方便:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;（译者注：原文这里好像有些错误，应该主要这里是指的机器码）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;90 - No Operation&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;90 - No Operation&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;CC - Break&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;CC - Break&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot;&gt;第20行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第20行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;汇编有两个主要的语法: 英特尔语法和AT&amp;amp;T语法。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;汇编有两个主要的语法: 英特尔语法和AT&amp;amp;T语法。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;英特尔语法 &lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Intel语法 &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;一般来说，一个运算的第一个操作数是目标操作数，另一个操作数 (或多个操作数) 是源操作数。 例如:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;一般来说，一个运算的第一个操作数是目标操作数，另一个操作数 (或多个操作数) 是源操作数。 例如:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mov eax, 123&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mov eax, 123&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mov指令从源操作数获取一个值，并将其放置在目标操作数中，因此该值123将被放置到寄存器eax中。 最初的Intel语法是Intel ASM386汇编程序的语法 (后来也授权给最终已经消失了的RadiSys)。 从那时起，许多汇编程序发明了它的许多变体。 此外，它在大多数在线汇编教程中被使用，因为这些教程中的大多数是在 [[TASM]] (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;使用的是英特尔语法&lt;/del&gt;) 占主导地位的汇编程序时编写的。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mov指令从源操作数获取一个值，并将其放置在目标操作数中，因此该值123将被放置到寄存器eax中。 最初的Intel语法是Intel ASM386汇编程序的语法 (后来也授权给最终已经消失了的RadiSys)。 从那时起，许多汇编程序发明了它的许多变体。 此外，它在大多数在线汇编教程中被使用，因为这些教程中的大多数是在 [[TASM]] (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;使用的是Intel语法&lt;/ins&gt;) 占主导地位的汇编程序时编写的。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== AT&amp;amp;T语法 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== AT&amp;amp;T语法 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Assembly&amp;diff=132&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“到计算机的核心内部，发送到机器任何部分的每个信号都是一系列电脉冲。 如果电脉冲高，例如5伏，表示发送二进制1位。 如果电脉冲低，例如0伏，表示发送二进制0位。 把4个二进制数字放在一起，你会得到一个半字节(nibble)。 把8个放在一起，你会得到一个字节（byte）。 把16个放在一起，你会得到一个字（word）。 计算机理解这些部分中的命令，但…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Assembly&amp;diff=132&amp;oldid=prev"/>
		<updated>2021-12-28T01:53:59Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“到计算机的核心内部，发送到机器任何部分的每个信号都是一系列电脉冲。 如果电脉冲高，例如5伏，表示发送二进制1位。 如果电脉冲低，例如0伏，表示发送二进制0位。 把4个二进制数字放在一起，你会得到一个半字节(nibble)。 把8个放在一起，你会得到一个字节（byte）。 把16个放在一起，你会得到一个字（word）。 计算机理解这些部分中的命令，但…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;到计算机的核心内部，发送到机器任何部分的每个信号都是一系列电脉冲。 如果电脉冲高，例如5伏，表示发送二进制1位。 如果电脉冲低，例如0伏，表示发送二进制0位。 把4个二进制数字放在一起，你会得到一个半字节(nibble)。 把8个放在一起，你会得到一个字节（byte）。 把16个放在一起，你会得到一个字（word）。 计算机理解这些部分中的命令，但人类可很难理解。 所以人们开发了一种更好的查看此类信息的方式，那就是使用十六进制。 通常不需要16个位就可以显示一个命令，记住以下命令变得更加方便:（译者注：原文这里好些有些错误，应该主要这里是指的机器码）&lt;br /&gt;
90 - No Operation&lt;br /&gt;
CC - Break&lt;br /&gt;
E9 - 16 bit jump&lt;br /&gt;
CD - Interrupt&lt;br /&gt;
等。&lt;br /&gt;
但是很快，人们了解到这种代码需要用户友好，因此发明了汇编代码。 使用汇编代码，你可以用更易于人类阅读的特殊代码表示计算机操作。 例如JMP 跳转、INT 中断、NOP 空操作等。&lt;br /&gt;
&lt;br /&gt;
汇编程序是读取汇编文件 (通常使用扩展名.asm) 并将其转换为二进制可执行文件的程序。 这非常类似于生成可执行程序的编译器。 但是，汇编程序与编译器的不同之处在于，编译器隐藏了系统的底层细节，而汇编程序则向你暴露了这些细节。&lt;br /&gt;
&lt;br /&gt;
为任何汇编器编写的源代码定义为 “汇编语言。“但这并不意味着什么，因为在完全相同的平台上，每个汇编器可能需要用于完全相同的程序的不同源代码。&lt;br /&gt;
&lt;br /&gt;
== 汇编语法 ==&lt;br /&gt;
在汇编中，每个指令 (或操作/运算符/操作码) 后面都有一个逗号分隔的参数 (或操作数) 列表。 这些操作数可以是立即值 (即数字，如1，2，[[Hexadecimal Notation | 十六进制0x]]16，0101[[Binary Notation |二进制符号 b]])，或寄存器registers，或内存memory位置。 例如，&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
mov eax, 123&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
这里指令是mov，操作数是eax和123。这里eax是寄存器，123是立即值。&lt;br /&gt;
&lt;br /&gt;
汇编有两个主要的语法: 英特尔语法和AT&amp;amp;T语法。&lt;br /&gt;
&lt;br /&gt;
=== 英特尔语法 ===&lt;br /&gt;
一般来说，一个运算的第一个操作数是目标操作数，另一个操作数 (或多个操作数) 是源操作数。 例如:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
mov eax, 123&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
mov指令从源操作数获取一个值，并将其放置在目标操作数中，因此该值123将被放置到寄存器eax中。 最初的Intel语法是Intel ASM386汇编程序的语法 (后来也授权给最终已经消失了的RadiSys)。 从那时起，许多汇编程序发明了它的许多变体。 此外，它在大多数在线汇编教程中被使用，因为这些教程中的大多数是在 [[TASM]] (使用的是英特尔语法) 占主导地位的汇编程序时编写的。&lt;br /&gt;
&lt;br /&gt;
=== AT&amp;amp;T语法 ===&lt;br /&gt;
AT&amp;amp;T语法与Intel语法相反。 操作的数据是从左向右传送。 以下是与上述AT&amp;amp;T语法相同的语句。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
mov $123, %eax&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
还有一些其他与操作数的区别:&lt;br /&gt;
&lt;br /&gt;
* 诸如123之类的字面值以 “$” 为前缀 (请参见上面的示例)。&lt;br /&gt;
* 内存位置没有前缀: ''mov 123, %eax'' 将存储在123的值移动到eax。&lt;br /&gt;
* 寄存器以 “%” 为前缀&lt;br /&gt;
* 当使用寄存器作为指针时，将其放在括号中:  ''mov (%eax), %ebx''将存储在eax中的指针处的值移动到ebx。&lt;br /&gt;
* 当使用带有内存位置的语句 (没有寄存器存在) 时，指令后需要后缀。 例如: movl $123, 123. 需要'l' (代表长整形)，告诉汇编器值为32位。&lt;br /&gt;
* 指针可以通过前缀常量来偏移:4(%eax) 指向4+%eax。&lt;br /&gt;
* 指针可以通过将它们写为 :(%eax,%ebx) 来偏移另一个寄存器，指向 ''x'' x&lt;br /&gt;
* 最后，如果需要，您可以将其全部组合: 4(%eax,%ebx,2) 将为4+%eax+%ebx*2&lt;br /&gt;
&lt;br /&gt;
== 另见 ==&lt;br /&gt;
&lt;br /&gt;
=== 文章 ===&lt;br /&gt;
* [[:Category:Assemblers|Assemblers]]&lt;br /&gt;
* [[Inline Assembly]]&lt;br /&gt;
* [[Opcode syntax]] 有关AT&amp;amp;T语法差异的更多详细信息&lt;br /&gt;
* [[Learning 80x86 Assembly]]: 免费提供的在线资源列表，以帮助学习80x86汇编语言编程&lt;br /&gt;
&lt;br /&gt;
=== 外部链接 ===&lt;br /&gt;
* [http://www.gnu.org/software/binutils/ GNU Binutils] - 包括GNU汇编程序 (gas) 在内的免费软件集合&lt;br /&gt;
* [http://sourceware.org/binutils/docs/as gas manual] - GNU汇编器 (gas) 官方手册&lt;br /&gt;
* [http://www.nasm.us/ NASM] - Netwide汇编器的官方网站: NASM&lt;br /&gt;
* [[wikibooks:X86_Assembly|x86_Assembly]] - 关于基于x86的个人电脑编写汇编的维基教科书&lt;br /&gt;
* [http://www.plantation-productions.com/Webster/www.artofasm.com/index.html The Art of Assembly Language Programming], 在线图书，16位DOS版。(后来的版本集中于作者创建的高级汇编方言。)&lt;br /&gt;
* [http://www.drpaulcarter.com/pcasm/ PC ASM], 在线书籍，x86上的32位保护模式组件&lt;br /&gt;
* [http://ref.x86asm.net x86 Opcode and Instruction Reference], 指令和操作码的数据库，作为免费的可查看、可搜索和可下载的XML文件。 他们还出售实体版本。&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly]]&lt;br /&gt;
[[Category:Languages]]&lt;br /&gt;
[[de:Assembler]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>