16位汇编语言寄存器及指令整理(小结)_汇编语言

来源:脚本之家  责任编辑:小易  

微处理器主要由3部分组成,它们分别是:(1)运算器 包括算术逻辑单元(ALU),用来对数据进行算术和逻辑运算,运算结果的一些特征由标志寄存器储存。(2)控制器 包括指令寄存器、指令译码器以及定时与控制电路。根据指令译码的结果,以一定时序发出相应的控制信号,用来控制指令的执行。(3)寄存器阵列 包括一组通用寄存器和专用寄存器。通用寄存器组用来临时存放参与运算的数据,专用寄存器通常有指令指针IP(或程序计数器PC)和堆栈指针SP等。8086 CPU由指令执行单元EU和总线接口单元BIU组成。(1)指令执行单元EU指令执行单元EU由算术逻辑运算单元ALU、1个16位标志寄存器FLAGS、1个数据暂存寄器、8个通用16位寄存器组和EU控制器等4个部件组成。其主要功能是执行指令。1)算术逻辑运算单元ALU 可完成16位或8位的二进制运算,运算结果可通过内部总线送到通用寄存器,或者送往组成BIU的内部寄存器中,等待写入存储器。2)16位暂存器 它协助ALU完成运算,用来暂存参加运算的操作数。3)标志寄存器(FLAGS)它是1个16位的寄存器,它用来反映经ALU运算后的结果特征,并置入标志寄存器FLAGS中保存。4)通用寄存器组 它包括4个16位数据寄存器AX、BX、CX、DX和4个16位指针与变址寄存器SP、BP、SI、DI,用来存放程序计算处理的数据和地址。5)EU控制器 负责从BIU的指令队列中取指令,并对指令译码,根据指令要求向EU内部各部件发出控制命令以实现各条指令的功能。(2)总线接口单元BIU总线接口单元BIU是由1个20位地址加法器、专用寄存器组(段寄存器和指令指针寄存器等)、指令队列和总线控制逻辑等4个部件组成。其主要功能是形成访问存储器的物理地址、访问存储器取得指令并暂存到指令队列中等待执行,访问存储器或I/O端口以读取操作数参与EU运算或存放运算结果等。1)地址加法器 EU主要完成逻辑地址到物理地址的转换,即将16位“段基址”左移四位与16位“偏移地址”(段内地址)在地址加法器相加形成20物理地址。从而使可寻址的存储空间达到1MB。2)总线控制逻辑 总线控制逻辑主要是负责8086/8088 CPU的内部总线与CPU引脚所连接的外部系统总线交换数据的控制。3)专用寄存器 包括4个16位段寄存器CS、DS、SS、ES,1个16位指令指针寄存IP和内部暂存器,段寄存器用来存放16位“段基址”,指令指针寄存IP用来存放当前正在执行指令的偏移量地址。4)指令队列 当EU正在执行指令中,且不需占用总线时,BIU会自动地进行预取指令操作,将所取得的指令按先后次序存入指令队列寄存器中,该队列按“先进先出”的方式工作,并按顺序提供给EU执行。谢谢你看完我的回答www.zgxue.com防采集请勿采集本网。

寄存器

通用寄存器

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 栈顶寄存器

3)使用的是CL寄存器。02表示操作数是02H,十六进制数2。第二、三条指令也是以此类推,查看一下指令格式就可以了。编译后的可执行文件里写的就是第二列的内容,您可以用UlTra Edit等十六进制编辑器打开看一

段寄存器

标号 名称
CS 代码段
DS 数据段
SS 栈段
ES 附加数据段
GS,FS 附加数据段(+80386)

STC指令是8086指令系统中的一条标志寄存器操作指令,用于对进位标志CF进行设置或清除。进位标志CF用在多字节运算或多字运算中,用来传递 低位往高位的进位,当进行加(减)法运算时,若最高位向前有进(借

专用寄存器

标号 名称
IP,EIP 指令指针
Flags EFlags

你的程序我基本看懂了,单个子程序都没有大的问题,但是子程序间的参数传递有点乱 改好的程序如下,不一定正确,你可以试试. 大家也可以彼此联系,互相交流交流 DSEG SEGMENT sushu dw 1000 dup?存放素数

微机CPU指令系统

用汇编语言等非机器语言书写好的符号程序称为源程序,汇编语言编译器的作用是将源程序翻译成目标程序。目标程序是机器语言程序,当它被安置在内存的预定位置上后,就能被计算机的CPU处理和执袭行。汇编的

数据传送指令

    传送指令 MOV 传送-填充指令 MOVSX/MOVZX 交换指令 XCHG 进栈操作指令 PUSH,PUSHA(80286+),PUSHAD(80386+) 出栈操作指令 POP,POPA(80286+),POPAD((80386+)) 转换指令 XLAT 取有效地址指令 LEA 取段寄存器指令 LDS 字节交换指令 BSWP

API可以用多种语言完成,不仅是C,也直接用汇编。其实就是把操作系统内的函数整理出来,给开发人员用于编程,就是API 至于汇编语言,是一种编程语言,是一种仅比二进制语言高级的编程语言。学API

算数运算指令

加法指令

    加法指令 ADD 带进位加法指令 ADC 加一指令 INC 交换相加指令 XADD

减法指令

    减法指令 SUB 带错位减(目的操作数-源操作数-标志位CF) SBB 减一指令 DEC 求补指令(改变正负) NEG

乘法指令

    无符号乘法指令 MUL
乘数位数 隐含被乘数 存储寄存器
8位 AL AX MUL BL
16位 AX DX-AX MUL BX
32位 EAX EDX-EAX MUL ECX

2. 有符号数乘法指令 IMUL(80286-)同上

除法指令

    无符号数除法指令 DIV
除数位数 隐含被除数 余数 例子
8位 AX AL AH DIV BH
16位 DX-AX AX DX DIV BX
32位 EDX-EAX EAX EDX DIV ECX

2. 有符号数的除法指令IDIV

类型转换指令

    字节->字 CBW:AL中符号数->AH 字->双字 CWD:AX符号位->DX 字变双字CWDE;80386+:AX符号位->EAX 双字->四字:CDQ;80386+:EAX->EDX

逻辑运算指令

    逻辑与 AND 逻辑或 OR 逻辑非 NOT 逻辑异或 XOR

移位操作指令

    算数位移指令SAL(左)/SAR(右) 逻辑移位指令(补零) SHL/SHR 循环右移指令(带进位) ROL/ROR

处理机制指令

指令 效果
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 封锁

in和Out都是IO操作指令,例如out指令:OUT PortNo/DX,AL/AX功能为把AL/AX的数据送到IO地址,IO地址如果大于FFH,则地址需要放入DX,要输出字节,默认使用AL寄存器,要输出字,默认使用AX寄存器。例如:MOV AL,10H/(将字节10H 从 I/O端口70H 输出)OUT 70H,ALMOV AX,0010H/(将 字0010H 从I/O端口37FH 输出。MOV DX,37FHOUT DX,AX扩展资料编译环境用汇编语言等非机器语言书写好的符号程序称为源程序,汇编语言编译器的作用是将源程序翻译成目标程序。目标程序是机器语言程序,当它被安置在内存的预定位置上后,就能被计算机的CPU处理和执行。汇编的调试环境总的来说比较少,也很少有非常好的编译器。编译器的选择依赖于目标处理器的类型和具体的系统平台。一般来说,功能良好的编译器用起来应当非常方便,比如,应当可以自动整理格式、语法高亮显示,集编译、链接和调试为一体,方便实用。对于广泛使用的个人计算机来说,可以自由选择的汇编语言编译器有MASM、NASM、TASM、GAS、FASM、RADASM等,但大都不具备调试功能。如果是为了学习汇编语言,轻松汇编因为拥有一个完善的集成环境,是一款非常适合初学者的汇编编译器。参考资料来源:百度百科-汇编语言内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 汇编指令-状态寄存器、cmp、test、jz等指令详细说明
  • 汇编语言 寄存器内存访问原理解析
  • 汇编语言存储及寄存器原理解析
  • 汇编语言之寄存器(详细介绍)
  • 汇编语言之寄存器详解
  • 汇编语言中的各种寄存器介绍
  • 汇编语言实现在指定字符串中搜索字符''a''的方法
  • 汇编 jmp使用详解
  • 汇编语言存储及寄存器原理解析
  • 汇编语言指令集之串处理指令讲解
  • 王爽 汇编语言学习笔记(详细)
  • 汇编语言位向量(位映射)的实现
  • 纯汇编实现打飞机小游戏的示例代码
  • 汇编程序输出“hello world”的实现
  • 一位数乘法的汇编语言实现方法
  • 浅析elf转二进制允许把 binary 文件加载到任意位置
  • 汇编语言中 OUT DX,AL 指令操作过程是什么? OUT操作码实现的功能是什么?
  • BIU 和EU 跟 运算器、控制器和寄存器组是什么关系啊?
  • 求大神整理c语言指令符号及用法大全。
  • 如何用汇编语言编写串口程序?~本人想串口发送AT指令~但是只能用汇编语言 各位大神能否给个例子参考参考。
  • 轻松汇编怎么用
  • 汇编语言中的STC是什么意思?
  • 一个汇编语言的小程序,有点乱,有点小错误,哪位大大帮忙整理一下改一下!!谢了
  • 能把汇编语言源程序翻译成目标程序的程序,称为( ) A 编译程序 B 解释程序 C编辑程序 D 汇编程序
  • API是用什么语言编写的?汇编语言属于什么语言?
  • 微机原理,用汇编语言编写,给定一组数据,大概十个数,统计正数,负数,0的个数,并显示到屏幕上(重要)
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言其它相关首页汇编语言汇编指令-状态寄存器、cmp、test、jz等指令详细说明汇编语言 寄存器内存访问原理解析汇编语言存储及寄存器原理解析汇编语言之寄存器(详细介绍)汇编语言之寄存器详解汇编语言中的各种寄存器介绍汇编语言实现在指定字符串中搜索字符""a""的方法汇编 jmp使用详解汇编语言存储及寄存器原理解析汇编语言指令集之串处理指令讲解王爽 汇编语言学习笔记(详细)汇编语言位向量(位映射)的实现纯汇编实现打飞机小游戏的示例代码汇编程序输出“hello world”的实现一位数乘法的汇编语言实现方法浅析elf转二进制允许把 binary 文件加载到任意位置汇编语言入门教程(这一篇足矣)王爽 汇编语言学习笔记(详细)汇编语言mov指令及基本用法汇编语言lea指令使用方法解析windows10下利用dosbox和masm32搭汇编语言入门教程阮一峰版详解如何在mac上用汇编语言写helc语言asm汇编内嵌语法详解gnu arm汇编语法原理及操作解析汇编程序输出“hello world”的实c语言asm汇编内嵌语法详解ios汇编入门教程之arm64汇编基础教程汇编语言软件延时1s的实现方法汇编语言 and和or逻辑运算指令的实现汇编语言 输入10个数排序并输出的实现arm体系下的gcc内联汇编教程详解汇编语言中test和cmp有什么区别汇编语言有关在屏幕区显示字符的四种方法gnu arm汇编语法原理及操作解析王爽 汇编语言学习笔记(详细)
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved