x86汇编语言基础

一.汇编语言的特点
1.与机器相关性
2.执行的高效性
3.编写程序的复杂性
4.调试的复杂性

二.通用寄存器
1.数据寄存器
数据寄存器用来存放计算的结果和操作数,也可以存放地址。
每个寄存器又有自己专用的目的:
AX:累加器,使用频率最高,用于算数、逻辑运算以及外设传递信息等;
BX:基址寄存器,常用于存放存储器的地址;
CX:计数器,作为循环和串操作等指令中的隐含计数器
DX:数据寄存器,常用于存放双字长数据的高十六位,或存放外设端口地址;

2.变址寄存器
变址寄存器常用于存储器寻址时提供地址
SI是源变址寄存器(Source)
DI是目的变址寄存器(Destination)
串操作类指令中,SI和DI具有特别的功能。

3.指针寄存器
指针寄存器用于寻址内存堆栈内的数据
SP为堆栈指针寄存器,指示栈顶的偏移地址
SP不能再用于其他目的,具有专用目的
BP为基址指针寄存器,表示数据在堆栈段中的基地址
SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址

4.栈
栈是主存中一个特殊的区域,本质上不属于寄存器
栈通常由处理器自动维持,在8086中,由堆栈段寄存器SS和堆栈指针寄存器SP共同指示

5.指令指针寄存器
指令指针寄存器IP,指示代码段中指令的偏移地址
它与代码段寄存器CS联用,确定下一条指令的物理地址
计算机通过CS:IP寄存器来控制指令序列的执行流程
IP寄存器是一个专用寄存器

6.标志寄存器
标志是为了反映指令执行结果或指令执行形式

原文地址:http://blog.51cto.com/13652962/2096059

时间: 2024-10-11 01:09:37

x86汇编语言基础的相关文章

程序的载入和运行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25

程序的载入和运行(五)--<x86汇编语言:从实模式到保护模式>读书笔记25 前面几篇博文最终把代码分析完了.这篇就来说说代码的编译.运行和调试. 1.代码的编译及写入镜像文件 之前我们都是在命令行输入命令进行编译和写入.源文件少的时候还不认为麻烦,当源文件多了,就会认为特别麻烦.有没有简单的方法呢? 当然有,就是用make工具. 1.1.什么是make工具 make是一个命令工具,它解释Makefile中的指令.在Makefile文件里描写叙述了整个project全部文件的编译顺序.编译规则

汇编语言基础2

汇编语言基础(寄存器) 首先一个CPU 的结构一般包含运算器,控制器,寄存器,高速缓存,总线等等他们的功能简要来说就是: 1.运算器进行信息处理 2.寄存器进行信息处理 3.控制器控制个种器件进行工作 4.内部总线连接各种器件 不同的CPU ,寄存器的个数,结构是不相同的.8086有14个寄存器每一个都有一个名字:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW. 它的寄存器都是16位的,可以存放两个字节,AX,BX,CX,DX这4个寄存器通常用来存放一般性的

程序的加载和执行(六)——《x86汇编语言:从实模式到保护模式》读书笔记26

程序的加载和执行(六)--<x86汇编语言:从实模式到保护模式>读书笔记26 通过本文能学到什么? NASM的条件汇编 用NASM编译的时候,通过命令行选项定义宏 Makefile的条件语句 在make命令行中覆盖Makefile中的变量值 第13章习题解答 复习如何构造栈段描述符 我们接着上篇博文说. 在我修改后的文件中,用到了条件汇编. 比如: %ifdef DEBUG put_core_salt: ;打印内核的符号 ... ... put_usr_salt: ;打印用户的符号 ... .

6.828学习笔记2 - QEMU和x86汇编语言

6.828的工具都装好了,在正式开始实验之前,要先熟悉每个工具的使用.对于我这种小白用户,需要熟悉的更多. 1.x86汇编语言 果然,课程首先让我熟悉汇编语言,并提供了两份参考文献.虽然我对汇编语言离熟悉还差十万八千里,不过好歹是用过的.我感到如果想要保持学习的兴趣,目前采取"如无必要,绝不深究"的态度非常重要.所以对汇编语言就先这样.我把参考文献下载到本地,然后跳到下一步. 2.模拟x86 课程给出了QEMU的作用.特性和辅助调试工具(GDB),不过这些细节我现在还统统不感兴趣.程序

《X86汇编语言 从事模式到保护模式》问题

书中的42页,监测点4.2第一题,代码如下: mov ax, 0xb800 mov ds, ax mov [0x00], 'a' mov [0x02], 's' mov [0x04], 'm' jmp $ 编译会报错 提示没有指定操作数长度,修改后为 mov ax, 0xb800 mov ds, ax mov byte [0x00], 'a' mov byte [0x02], 's' mov byte [0x04], 'm' jmp $ 然后用书中提供的工具fixvhdwr.exe写入到虚拟机的

存储器的保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记18

本文是原书第12章的学习笔记. 说句题外话,这篇博文是补写的,因为让我误删了,可恶的是CSDN的回收站里找不到! 好吧,那就再写一遍,我有坚强的意志.司马迁曰:“文王拘而演<周易>:仲尼厄而作<春秋>:屈原放逐,乃赋<离骚>:左丘失明,厥有<国语>:孙子膑脚,<兵法>修列:不韦迁蜀,世传<吕览>……”好了,不煽情了,进入正题. 第12章的代码如下. 1 ;代码清单12-1 2 ;文件名:c12_mbr.asm 3 ;文件说明:硬盘主引

存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20

存储器的保护(三) 改动本章代码清单,使之能够检測1MB以上的内存空间(从地址0x0010_0000開始,不考虑快速缓存的影响).要求:对内存的读写按双字的长度进行.并在检測的同一时候显示已检測的内存数量.建议对每一个双字单元用两个花码0x55AA55AA和0xAA55AA55进行检測. 上面的文字选自原书第12章的习题1. 这篇博文就讨论一下这道题.由于是初学,我不正确自己做太高的要求.仅仅要实现功能就可以. 代码清单 ;文件说明:第12章习题-1 ;创建日期:2016-3-7 ;------

《X86汇编语言 从实模式到保护模式》bochs 配置教程(详细)

本文是写给<X86汇编语言 从实模式到保护模式>读者的一份Bochs配置指南. 我们要做的有: 1.下载并安装bochs 2.配置bochs 3.通过bochs调试虚拟硬盘 bochs的官方网址:http://bochs.sourceforge.net/ bochs的下载地址:http://sourceforge.net/projects/bochs/files/bochs/ 本书附带文件下载地址:https://files-cdn.cnblogs.com/files/leec/booktoo

ASM:《X86汇编语言-从实模式到保护模式》5-7章相关知识

第5-7章感觉是这一本书中比较奇怪的章节,可能是作者考虑到读者人群水平的差异,故意由浅入深地讲如何在屏幕上显示字符和使用mov,jmp指令等等,但是这样讲的东西有点重复,而且看了第六,第七章以后,感觉第5章的做法真是太笨了. ★PART1:显卡与显存 1. 显卡与显存              a. 显卡控制显示器的最小单位是像素,一个像素对应着屏幕的一个点,屏幕上通常有数十万乃至更多的像素.而控制这些像素就要用到显存自己内置的一个东西,这个东西叫做显存(Video RAM,VRAM) .显存和