A. 关于汇编中的立即数问题
这个要看你对这个数的理解.如果你认为它是无符号数,那高8位就是0,低8位是原始数据;如果你认为它是有符号数,那就按符号扩展的原则进行.即:正数高8位为0,负数高8位每位都是1.低8位保持原始值.
B. 单片机作业 1.利用寄存器寻址和寄存器间接寻址把立即数85H送到RAM30H单元中。 2.把寄
我也是学生,1题寄存器寻址
MOV R1,#85H
MOV 30H,R1
寄存器间接寻址
MOV R1,#01H
MOV @R1,85H
MOV 30H,@R1
2题
MOV A,R0
MOV R1,A
4题B 5题C 7题 运算、控制 8题8位
其实我还是个浑水摸鱼的啥都不懂!错了别怪我哦。
C. 当日光灯上缺少启辉器时,人们常用一导线将启辉器的两端短接,然后迅速断开使日光灯点量亮,这是为什么
启辉器里有个金属片,通电发热后就断开,然后冷了又接通,如此往复,它的作用是在断开的瞬间导致电感整流器产生高电压从而击穿日光灯里的导电气体,点燃日光灯。
一旦日光灯点亮,启辉器就失去做用。人们常用一根导线将启辉器的两端短接一下,然后迅速断开,使日光灯点亮,就是利用这个原理。
启辉器工作原理:
当开关接通的时候,电源电压立即通过镇流器和灯管灯丝加到启辉器的两极。220伏的电压立即使启辉器的惰性气体电离,产生辉光放电。这一过程可分为两个阶段:
起初放电阶段
由于整个电路是靠电线连通的,只有启辉器的两个金属片是分开的,所以在通电的瞬间220伏的交流电源会加在启辉器上,使启辉器辉光放电导通,这时相当于启辉器两端的电压为0伏,但电流不为0,而同时220伏交流电会加载在灯管两端的灯丝上,灯丝会被加热,灯丝的电阻加大;
由于在串联电路中电阻越大分得的电压越高,所以当灯管两端的每个灯丝分得的电压上升到110伏的时候,这时候启辉器两端的电压正式为0,启辉器跳开,电流为0,镇流器瞬间产生自感电动势,点亮灯管。
瞬间电离阶段
在两极断开的瞬间,电路电流突然切断,镇流器产生很大的自感电动势,与电源电压叠加后作用于管两端。灯丝受热时发射出来的大量电子,在灯管两端高电压作用下,以极大的速度由低电势端向高电势端运动。在加速运动的过程中,碰撞管内氩气分子,使之迅速电离。
氩气电离生热,热量使水银产生蒸气,随之水银蒸气也被电离,并发出强烈的紫外线。在紫外线的激发下,管壁内的荧光粉发出近乎白色的可见光。日光灯正常发光后。
由于交流电不断通过镇流器的线圈,线圈中产生自感电动势,自感电动势阻碍线圈中的电流变化,这时镇流器起降压限流的作用,使电流稳定在灯管的额定电流范围内,灯管两端电压也稳定在额定工作电压范围内。
由于这个电压低于启辉器的电离电压(感应电动势),所以并联在两端的启辉器也就不再起作用而被自动断开。
D. 什么叫非显式的整型立即数
理解一:8位扩展到32位,若为正数或0,对高24位全部补0;若为负数,对高24位全部补1。这样,原来的8位立即数就扩展为等效的32位立即数。理解二:是将立即数放到32位的寄存器的低8位中,然后逻辑左移24次,可得到一个32位数。
E. 什么是立即数寻址
立即寻址方式的目的就是将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。
在MCS-51单片机汇编语言编程中,该寻址方式是将“#”号放在立即数前面,以表示该寻址方式为立即寻址,如将操作数写为#52H。
例: MOV A ,#52H
上述例子中“MOV”为操作码,“A”为第一操作数,其意义为累加寄存器,“#52H”为第二操作数,其意义就是立即数。通过该条程序指令可将十六进制数52H直接放入累加器中,当然也可以将立即数表示为二进制数或十进制数,如#00B。
(5)立即数扩展电路扩展阅读:
立即数的实施限制:
由于立即数被打包到指令本身中,因此某些ISA具有可用作立即值的受限范围的值。例如,在MIPS32中,立即数限制为16位。在一些更复杂的体系结构(如ARM)上,某些指令可能接受16位值,其他指令可能接受较小的范围,并且能够根据需要旋转位。
在立即数不能直接编码到指令中的情况下,例如当值超出范围时,可以采用各种其他方式来处理这些值。一个这样的选项是从内存中的常量池(例如文字池)加载公共值。或者,可以使用可以表示或加载到寄存器中并从那里操作的值来组装值。
一些ISA(如MIPS32和ARM)具有专用指令,如LUI,MOVW和MOVT,它们提供了一种方法,将高16位后跟低16位加载到单个寄存器中。
F. 汇编语言中什么是立即数
立即数:
一个立即数是一块数据存储作为指令本身,而不是在一个中的一部分内容存储器位置或寄存
器。立即值通常用于加载值或对常量执行算术或逻辑运算的指令。
概述:
在大多数指令集架构下,各种指令也可以对常量值执行操作。例如,考虑一个可以添加两个寄
存器并将结果存储在第三个寄存器中的ISA:
添加r3,r2,r1; r3 = r2 + r1
指令集还可以支持添加常量值的常见情况(例如,在许多支持++ var的编程语言的情况下)。
添加r1,r1,1; r1 = r1 + 1
在上面的代码中,值1是在add指令本身中编码的立即数。
(6)立即数扩展电路扩展阅读:
立即数的实施限制:
由于立即数被打包到指令本身中,因此某些ISA具有可用作立即值的受限范围的值。例如,在
MIPS32中,立即数限制为16位。在一些更复杂的体系结构(如ARM)上,某些指令可能接受
16位值,其他指令可能接受较小的范围,并且能够根据需要旋转位。
在立即数不能直接编码到指令中的情况下,例如当值超出范围时,可以采用各种其他方式来处
理这些值。一个这样的选项是从内存中的常量池(例如文字池)加载公共值。或者,可以使用
可以表示或加载到寄存器中并从那里操作的值来组装值。一些ISA(如MIPS32和ARM)具有
专用指令,如LUI,MOVW和MOVT,它们提供了一种方法,将高16位后跟低16位加载到单个
寄存器中。
G. 请教: 立即数为什么不能直接传送给存储单元呢
这句话 是说指令无效
可能是因为寄存器具有明确的类型,例如,AL,AX分别为字节,字类型.若立即数没有明确的类型,MASM负责将立即数扩展为与目的操作数位数相同.有时MASM不能确定内存操作数的类型,需要用byteptr和wordptr明确指出是字节或字类型. 因为你要送的这个300换算成16进制只有8位 ,你在[si]前面添上看看
另外 里面的org 120h似乎用不到?
H. 立即寻址的立即数表示注意事项
1、 根据数制类型不同,可以使用二进制、八进制、十进制、十六进制等表示方法,并在相应的数制类型后面加上B、O、D、H作为区分,例如:00001111B,02H等。
2、根据微型处理器的处理位数不同,程序编写时应对其取值范围、存储方式加以注意。如对于8位处理器,应采用00H至FFH(以十六进制表示)之间的数。
3、对于16位以上的处理器在立即数为16位或32位时,它将按“高高低低”的原则进行存储。
例如(以下的例子为8086系列汇编语言中指令格式,括号中为指令的解释):
MOV AH,80H (将八位立即数存入高位累加寄存器)
ADD AX,1234H (将十六位立即数与累加寄存器中的数相加并存入累加寄存器)
MOV ECX,12345678H(将三十二位立即数存入扩展计数寄存器)
MOV B1, 12H(将八位立即数存入字节单元)
MOV W1,3456H(将十六位立即数存入字单元)
ADD D1,32123456H(将三十二位立即数与双字单元中的数相加)
应注意,以上指令中的第二操作数(例:MOV AH,80H中80H为第二操作数)都是立即数,在汇编语言中规定:立即数不能作为指令中的第一操作数。该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致。
4、立即数寻址方式通常用于对通用寄存器或内存单元赋初值。
I. 时序逻辑电路的同步置数和异步置数的区别
1、触发器工作状态不同:
(1)同步置数所有触发器的时钟端连在一起,即所有触发器在同一时钟作用下同步工作。
(2)异步置数触发器不在同一时钟作用下同步工作。
2、时钟脉冲CP作用不同:
(1)同步置数时钟脉冲CP控制所有触发器同步工作。
(2)异步置数时钟脉冲CP只触发部分触发器,其余触发器由电路内部信号触发。
3、生效条件不同:
(1)同步置数输入条件满足,等待时钟有效时刻生效。
(2)异步置数与时钟无关,输入条件满足,立即生效。
(9)立即数扩展电路扩展阅读
时序逻辑电路的三种逻辑器件
时序逻辑电路应用很广泛,根据所要求的逻辑功能不同进行划分,它的种类也比较繁多。在具体的授课环节中,主要选取了应用较广、具有典型时序逻辑电路特征的三种逻辑器件进行比较详细地介绍。
1、计数器
一般来说,计数器主要由触发器组成,用以统计输入计数脉冲CP的个数。计数器的输出通常为现态的函数。计数器累计输入脉冲的最大数目称为计数器的“模”,用M表示。如M=6计数器,又称六进制计数器。所以,计数器的“模”实际上为电路的有效状态数 。
同步七进制加法计数器的逻辑图计数器的种类很多,特点各异。主要分类如下:按计数进制可分为:二进制计数器,十进制计数器,任意进制计数器。按计数增减可分为:加法计数器,减法计数器,加/减计数器,又称可逆计数器。按计数器中触发器翻转是否同步可分为:异步计数器和同步计数器 。
2、寄存器
寄存器是存放数码,运算结果或指令的电路,移位寄存器不但可存放数码,而且在移位脉冲作用下,寄存器中的数码可根据需要向左或向右移位。寄存器和移位寄存器是数字系统和计算机中常用的基本逻辑部件,应用很广。
一个触发器可存储一位二进制代码,n个触发器可存储n位二进制代码。因此,触发器是寄存器和移位寄存器的重要组成部分。对寄存器中的触发器只要求它们具有置0或者置1功能即可,无论是用同步结构的触发器,还是用主从结构或者边沿触发的触发器,都可以组成寄存器 。
3、顺序脉冲发生器
顺序脉冲是指在每个循环周期内,在时间上按一定先后顺序排列的脉冲信号。产生顺序脉冲信号的电路称为顺序脉冲发生器。在数字系统中,常用以控制某些设备按照事先规定的顺序进行运算或操作
参考资料来源:网络-时序逻辑电路
网络-同步置数
网络-时序电路
J. 在MIPS指令集中立即数扩展的问题:addiu/addi/slti/sltiu 分别对立即数进行零扩展还是符号扩展
以上四条指令都做符号扩展。addiu虽然是无符号数加法,但立即数字段是有符号的,所以需要做符号扩展。计算机组成与设计 硬件/软件接口中文第五版p119 英文第五版p180上有讲道这个问题。