寄存器
通用寄存器
8位寄存器 | 16位寄存器 | 32位寄存器 | 寄存器名称 |
---|---|---|---|
AH,AL | AX | EAX | 累加寄存器 |
BH,BL | BX | EBX | 基地址寄存器 |
CH,CL | CX | ECX | 计数器寄存器 |
DH,DL | DX | EDX | 数据寄存器 |
SI | ESI | 源变址寄存器 | |
DI | EDI | 源目标寄存器 | |
DH,DL | DX | EDX | 基地址寄存器 |
DH,DL | DX | EDX | 栈顶寄存器 |
段寄存器
标号 | 名称 |
---|---|
CS | 代码段 |
DS | 数据段 |
SS | 栈段 |
ES | 附加数据段 |
GS,FS | 附加数据段(+80386) |
专用寄存器
标号 | 名称 |
---|---|
IP,EIP | 指令指针 |
Flags | EFlags |
微机CPU指令系统
数据传送指令
算数运算指令
加法指令
减法指令
乘法指令
乘数位数 | 隐含被乘数 | 存储寄存器 | 例 |
---|---|---|---|
8位 | AL | AX | MUL BL |
16位 | AX | DX-AX | MUL BX |
32位 | EAX | EDX-EAX | MUL ECX |
2. 有符号数乘法指令 IMUL(80286-)同上
除法指令
除数位数 | 隐含被除数 | 商 | 余数 | 例子 |
---|---|---|---|---|
8位 | AX | AL | AH | DIV BH |
16位 | DX-AX | AX | DX | DIV BX |
32位 | EDX-EAX | EAX | EDX | DIV ECX |
2. 有符号数的除法指令IDIV
类型转换指令
逻辑运算指令
移位操作指令
处理机制指令
指令 | 效果 |
---|---|
CLC | CF<-0 |
CMC | CF<-{CF} |
STC | CF<- 1 |
CLD | DF<- 0 |
STD | DF<- 1 |
CLI | IF<- 0 |
STI | IF<- 1 |
NOP | 无操作 |
HLT | 停机 |
WAIT | 等待 |
ESC | 换码 |
LOCK | 封锁 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍汇编语言之寄存器详解,包括了汇编语言之寄存器详解的使用技巧和注意事项,需要的朋友参考一下 上图是cpu中三个组成部分:寄存器 运算器 控制器。其中寄存器是cpu中程序员用指令读取的唯一部件(调剂界面中的 寄存器窗口)。如果是16位cpu,就是处理,传输,暂时存储的数据长度都是16位。所以16位的cpu,寄存器也是16位。《汇编语言》这本书中使用的是16位寄存器位例子来讲的,所以下面的
本文向大家介绍汇编语言 寄存器内存访问原理解析,包括了汇编语言 寄存器内存访问原理解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了汇编语言 寄存器内存访问原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在内存中字的存储 这段话的主要意思是:一个字=2B=16bit,CPU中是用两个内存单元储存一个字(假如获取0地址存放的字
本文向大家介绍汇编语言之寄存器(详细介绍),包括了汇编语言之寄存器(详细介绍)的使用技巧和注意事项,需要的朋友参考一下 1、寄存器 32位寄存器有16个,分别是: 4个数据寄存器(EAX、EBX、ECX、EDX)。 2个变址和指针寄存器(ESI和EDI);2个指针寄存器(ESP和EBP)。 6个段寄存器(ES、CS、SS、DS、FS、GS)。 1个指令指针寄存器(EIP);1个标志寄存器(EFla
本文向大家介绍汇编语言中的各种寄存器介绍,包括了汇编语言中的各种寄存器介绍的使用技巧和注意事项,需要的朋友参考一下 汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成
我想知道以下内容: 是否有可能创建一组小的组装指令,这些指令一起可以完成所有可能的操作?或者可能会有不同的问题,关于任何架构,必须有哪些组装说明? (例如,Jump和Add是做任何事情所必需的) 我希望你们能帮助我! 提供一些背景信息:我正在尝试为我的编译器设计一种中间语言,我想使用尽可能少的指令(稍后可以用一堆这些指令代替特定架构的复杂指令)。但是当然,IL本身应该是可移植的。
x86的通用寄存器有eax、ebx、ecx、edx、edi、esi。这些寄存器在大多数指令中是可以任意选用的,比如movl指令可以把一个立即数传送到eax中,也可传送到ebx中。但也有一些指令规定只能用其中某些寄存器做某种用途,例如除法指令idivl要求被除数在eax寄存器中,edx寄存器必须是0,而除数可以在任意寄存器中,计算结果的商数保存在eax寄存器中,而原来的被除数被覆盖掉,余数保存在ed