设计一个8位汇编循环左移指令移位寄存器,控制指令为三位,要求往左移

5、循环控制指令 LOOP 与哪二条指令等效?循环计数值存放在哪一个寄存器中?_百度知道
5、循环控制指令 LOOP 与哪二条指令等效?循环计数值存放在哪一个寄存器中?
thank you !
我有更好的答案
CX计数放CX中
其他类似问题
为您推荐:
您可能关注的推广回答者:
寄存器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Verilog程序设计-八位循环移位寄存器_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Verilog程序设计-八位循环移位寄存器
V​e​r​i​l​o​g​程​序​设​计​-​八​位​循​环​移​位​寄​存​器
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢某双向移位寄存器的频率为1khz,若将存放在该寄存器中的数据左移8位,完成该操作需要多少时间_百度知道
某双向移位寄存器的频率为1khz,若将存放在该寄存器中的数据左移8位,完成该操作需要多少时间
A.1ms B.8ms C.1μs D.8μs
提问者采纳
时钟引脚是要上升沿才会移位,只要时钟由低电平变高时就会移位,数据引脚当时是高电平就把1移入,是低电平就移入0。
其他类似问题
为您推荐:
您可能关注的推广
移位寄存器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
电子设计自动化EDA技术实验五报告模板-8位循环移位寄存器
下载积分:200
内容提示:电子设计自动化EDA技术实验五报告模板-8位循环移位寄存器 本文..
文档格式:PDF|
浏览次数:75|
上传日期: 17:29:14|
文档星级:
该用户还上传了这些文档
电子设计自动化EDA技术实验五报告模板-8位循环移位寄存器
官方公共微信  最近汇编学到后面的内容, 越来越觉得前面的基础没有掌握好, 弄得最后编写汇编程序的时候, 寄存器瞎用, 没有一点的规矩, 中断操作也不知道是对哪个寄存器里的数进行操作, 每次做一个小程序, 都得翻书后面的INT中断查询表, 感觉很不爽, 今天花了大半天把几本关于汇编的书前面的内容又翻了一遍, 结合自己做的笔记, 做了一个简单的整理, 关于寄存器和指令的, 以作复习汇编之用. 关于存哪个数据用哪个寄存器, 我觉得首先要弄清楚各个寄存器的用途, 以及指令是如何操作数据, 操作的哪个寄存器里的数据, 又是将操作完后的结果数据存放到那个寄存器中去的.
计算机内部寄存器阵列
l数据寄存器
l指针及变址寄存器
l控制寄存器
数据寄存器
包括4个16位的寄存器(AX, BX, CX, DX)或者8个8位寄存器(&&& AH, AL, BH, BL, CH, CL, DH, DL)
这些寄存器都可以用来暂时存放操作数, 运算结果以及其他信息, 但同时又具有某些专用用途
lAX 数据累加器
算术运算中的主要寄存器, 在乘除运算中用来指定被除数和被除数, 也是乘, 除,运算后积和商的默认存储单元. 另外I/O指令均使用该寄存器与I/O设备传送信息
lBX 基址寄存器
指令寻址时常用做基址寄存器. 存入偏移量或偏移量的构成成分
lCX 计算寄存器
在循环指令操作或串处理指令中隐含计数
lDX 数据寄存器
在双字节长运算是, 与AX构成32位操作数, DX为高16位. 在某些I/O指令中, DX被用来存放端口地址
指针及变址寄存器
这些寄存器都是16位的寄存器, 用来存放16位的操作数或中间结果, 但更经常的用途是存放偏移量, 或位移量
lSP 堆栈指针寄存器
始终只是栈顶的位置, 与SS寄存器一起组成栈顶数据的物理地址
lBP 基址指针寄存器
系统默认其指向堆栈中某一单元, 即提供栈中该单元的偏移量. 加段前缀后, BP可作非堆栈段的地址指针
lSI 源变址寄存器
与DS联用, 指示数据段中某操作的偏移量. 在做串处理时, SI指示源操作数地址, 并有自动增量或自动减量的功能. 变址寻址时, SI与某一位移量共同构成操作数的偏移量
lDI 目的变址寄存器
与DS联用, 指示数据段中某操作数的偏移量, 或与某一位移量共同构成操作数的偏移量. 串处理操作时, DI指示附加段中目的地址, 并有自动增量或减量的功能
lCS 代码段
存放当前程序的指令代码
lDS 数据段
存放程序所涉及的源数据或结果
lSS 堆栈段
以&先入后出&为原则的数据区
lES 附加段
辅助数据区, 存放串或其他数据
控制寄存器
lIP 指令指针寄存器
它始终指向当前将要执行指令在代码段中存放的偏移量
lFR 控制标志位
1.CF 进位标识位
进行加减运算时, 如果最高二进制位产生进位或错位, CF则为1, 否则为0. 程序设计中, 常用条件转移指令JC, JNC指令据此标志位实现转移
2.PF 奇偶标志位
操作结果中二进制位1的个数为偶数是, PF为1, 某则为0
3.AF 辅助进位标志位
运算时半字节产生进位或借位时, AF为1, 某则为0. 主要用于BCD码的调整
4.ZF 零标志位
运算结果为0时, ZF为1, 否则为0
5.SF 符号标志位
当运算结果的最高位为1时, SF为1, 否则为0. 最高位表示符号数的正和负
6.TF 跟踪标志位
用于调试程序时进入单步方式工作. TF=1时, 每条指令执行完后产生一个内部中断, 让用户检查指令运行后寄存器, 存储器和各标志位的内容. TF=0时, CPU工作正常, 不产生内部中断
7.IF 中断允许标志位
IF=1同时中断屏蔽寄存器的相应位为0, 允许系统响应可屏蔽中断, 反之, 不接收外部发出的中断请求
8.DF 方向位标志位
用于控制串操作时地址指针位移方向. 当DF=1时, 指针向高地址方向移动
9.OF 溢出标志位
算术运算时结果超出系统所能表示的数的范围. 溢出时, OF=1
关于汇编代码中的指令
  汇编指令语句的格式: [标号:] 指令助记符 [[目的操作数][, 源操作数]] [; 注释]
l指令助记符
如MOV, SUB这些词分别表示传送, 减法. 汇编源程序时, 系统使用内部对照表将每条指令的助记符翻译成对应的机器码
l目的操作数
目的操作数一共有两个作用
1.参与指令操作
2.暂时储存操作结果
源操作数主要提供原始数据或操作对象, 面向所有寻址方式. 例如, 在指令SUB AX, BX 中 的值作为减数提供给指令SUB
这是对源程序的说明, 在汇编中用 ; 号, 后面的内容将被注释
  介绍指令前, 先熟悉下这些在指令中的符号(必须要记得)
limme: 立即数
lDST: 目的操作数
lSRC: 源操作数
lmem: 存储器操作数
lOPR: 操作数
lreg: 通用寄存器
lEA: 偏移地址(偏移量)
lSreg: 段寄存器
lPort: 端口地址
lLabel: 标号
  汇编指令一共可以分为6组:
1.数据传送指令
2.算术运算指令
3.逻辑运算与移位指令
4.串操作指令
5.程序控制指令
6.处理器控制指令
数据传送指令
通用数据传送指令:
  lMOV&&&& DST, SRC&&&&& ;传送指令: 把源操作数的内容送入目的操作数
1.立即数做源操作数时, 立即数的长度必须小于等于目的操作数的长度
2.操作数DST, SRC分别为reg, reg或reg, Sreg或Sreg, reg时, 两者的长度必须保持一致
3.CS和IP寄存器不能做DST操作数, 不允许用立即数直接为段寄存器赋值
4.立即数不能作为目的操作数
5.不能将一个段寄存器的内容直接送到另一个段寄存器中, 可借助通用寄存器或PUSH, POP指令实现这一要求
  lPUSH&&&& SRC&&&&&&& ;压栈指令: 将一个字数据压入当前栈顶, 位移量disp=-2的地址单元. 数据进栈时, 栈指针SP首先向低地址方向移动两个字节位置, 接着    数据进栈, 形成新的栈顶
  lPOP&&&&&& DST&&&&&&&&&&&&& ;出栈指令: 弹出栈顶元素, 后将栈顶指针向栈底方向移动一个字
  lXCHG&&& OPR1, OPR2&&&&&&& ;交换指令: 将这两个操作数交换
地址传送指令:
  lLEA&&&&&&& DST, SRC&&&&& ;装载有效地址指令: 该指令将源操作数的偏移量OA装载到目的操作数中
  lLDS&&&&&&& DST, SRC&&&&& ;装载数据段指针指令: 将当前数据段中的一个双字数据装入到一个通用寄存器SI(双字数据的低字)和数据段寄存器DS(双字数据的高字)中
  lLES&&&&&&& DST, SRC&&&&& ;装载附加段指针指令: 将附加数据段中的一个32位地址数据指针(附加段指针)送到DI(低字)和ES(高字)寄存器中
标志传送指令: (专用于标志寄存器保护和更新的指令, 共四条)
  lLAHF&&&& ;标志寄存器送AH指令, 将标志寄存器的低字节送入AH中
  lSAHF&&&& ;AH送标志寄存器指令, 将AH寄存器内容送标志寄存器FR的低字节
  lPUSHF&& ;标志进栈指令, 标志寄存器进栈
  lPOPF&&&& ;标志出栈指令, 标志寄存器出栈
累加器专用传送指令:
  lIN&& AL, Port&&&&&&& ;从端口读入数据, 存放在AL中
  lOUT&&&&&& Port, AL&&&&&&& ;传送AL中的数据到端口
  lXLAT&&&&& OPR或XLAT&&&&&&& ;用于将AL中当前的内容转换为一种代码
算术运算指令
  lADD&&&&& DST, SRC&&&&& ;DST+SRC的和存放到DST中去
  lADC&&&&&& DST, SRC&&&&& ;带进位加法指令, DST+SRC+CF
  lINC&&&&&&& DST&&&&&&&&&&&&& ;增1指令
  lSUB&&&&&&&&&&&&& DST, RSC&&&&& ;DST-SRC, 存放到DST中
  lSBB&&&&&&& DST, SRC&&&&& ;带借位减法指令, DST-SRC-CF
  lDEC&&&&&&&&&&&&& DST&&&&&&&&&&&&& ;减1指令
  lNEG&&&&&& DST&&&&&&&&&&&&& ;求补指令, 求补码
  lCMP&&&&& OPR1, OPR2&&&&&&& ;比较指令
  lMUL&&&&& SRC&&&&&&& ;无符号数乘指令, AL*SRC, 结果放入AX中
  lIMUL&&&& SRC&&&&&&& ;有符号数乘指令, AL*SRC, 结果放入AX中
  lDIV&&&&&&& SRC&&&&&&& ;无符号数除指令, AX/SRC, 商放入AL中, 余数放在AH中
  lIDIV&&&&&& SRC&&&&&&& ;符号数除指令, AX/SRC, 上放入AL中, 余数放在AH中
  lCBW, CWD&&&&&&&&& ;都是符号扩展指令. 将AL的符号扩到AX中; 将AX的符号扩到DX中
逻辑运算与移位指令
逻辑运算指令:
  lNOT&&&&&& OPR&&&&&& ;逻辑非指令
  lAND&&&&& OPR&&&&&& ;逻辑与指令
  lOR&&&&&&&& OPR&&&&&& ;逻辑或指令
  lXOR&&&&&& OPR&&&&&& ;逻辑异或指令
  lSHL&&&&&&& DST, CNT&&&&& ;逻辑左移
  lSHR&&&&&& DST, CNT&&&&& ;逻辑右移
  lSAL&&&&&&& DST, CNT&&&&& ;算术左移
  lSAR&&&&&&&&&&&&& DST, CNT&&&&& ;算术右移
循环移位指令:
  lROL&&&&&&&&&&&&& DST, CNT&&&&& ;循环左移
  lROR&&&&&& DST, CNT&&&&& ;循环右移
  lRCL&&&&&&& DST, CNT&&&&& ;带进位循环左移
  lRCR&&&&&&&&&&&&& DST, CNT&&&&& ;带进位循环右移
串操作指令
  lMOVS&& ;串传送指令
  lCMPS&&& ;串比较指令
  lSCAS&&&& ;串扫描指令
  lLODS&&&& ;装入串指令
  lSTOS&&&&& ;存储串指令
控制转移指令
  lJMP&&&&&&&&&&&&& ;无条件转移指令
  lJX&&&&&&&&& ;条件转移指令(JC/JNC, JZ/JNZ, JE/JNE, JS/JNS, JO/JNO, JP/JNP&)
  lLOOP&&&& 标号&&&&&& ;该指令执行时, 技术寄存器CXX首先减1, 然后判断CX, 若为0, 跳出循环
条件循环指令:
  lLOOPZ/LOOPE, LOOPNZ/LOOPNE&&&&&& ;前者用于找到第一个不为0的事件, 后者用于找到第一个为0的事件
子程序调用指令:
  lCALL&&&&& 子程序名&&&&&& ;段内直接调用
  lINT&&&&&&& N(中断类型号)&&&& ;软中断指令
  lIRET&&&&&& ;中断返回指令
处理器控制指令
标志处理指令:
  lCLC&&&&&&& ;进位标志CF置0
  lCMC&&&&& ;进位标志CF求反
  lSTC&&&&&&& ;进位标志值1
  lCLD&&&&&&&&&&&&& ;方向标志置0
  lSTD&&&&&&&&&&&&& ;方向标志置1
  lCLI&&&&&&&& ;中断允许标志置0
  lSTI&&&&&&&& ;中断允许标志置1
其他处理器控制指令:
  lNOP&&&&& ;空操作
  lHLT&&&&&&& ;停机
  lWAIT&&&& ;等待
  lESC&&&&&&& ;换码
  lLOCK&&&& ;封锁
  当然, 汇编还有很多指令, 我这边没有列出来, 用到的时候查查资料就Okay罗.
  祝大家周末愉快.
阅读(...) 评论()

我要回帖

更多关于 汇编循环左移指令 的文章

 

随机推荐