一、汇编立即操作数有哪些?
操作数是参加某种功能操作的数据,有三种方式提供。1、立即数;2、通过寄存器;3、通过内存。
1、立即数
立即数是一个常量,可以写成十进制(D),十六进制(H),八进制(O),二进制(B)
例如:ADD AX,0FFH
立即数只能作为源操作数,不能放在目的操作数位置。
2、寄存器操作数
指操作数存放在寄存器中,用来存放参加运算的数据或存放运算结果。寄存器包括段寄存器、控制寄存器和通用寄存器。
⑴、段寄存器(DS、SS、ES)
是存放段地址的,要将段地址送入,必须以通用寄存器为中间桥梁,即通过通用寄存器将数据传送到DS、SS、ES段寄存器中。
例如:将段地址2000H送数据段寄存器中。
MOV AX,20000H
MOV DS,AX
通过通用寄存器传送,不能直接将立即数传送到段寄存器中。而代码段CS不准用户干预,是由系统分配的。
⑵、控制寄存器
控制寄存器包括:指令指针寄存器IP,EIP和标志寄存器FLAGS,控制寄存器也不能直接送操作数
⑶、通用寄存器
通用寄存器可以装操作数。
3、内存操作数
内存操作数是只操作数存放在内存中,其操作是往内存中写数或从内存中取操作数,CPU与内存打交道是通过内存地址完成的。
例如:MOV AX,2000H
MOV AX,[2000H]
注意:对于单操作数指令:操作数只能是寄存器操作数和内存操作数。
对于双操作数指令:操作数可以是寄存器操作数、内存操作数和立即数,目的操作数可以是寄存器操作数和内存操作数,源操作数、目的操作数不能同时为内存操作数。
二、存储器操作数有哪些?
指令的操作数有四种:
1、立即数,即常数,直接在汇编指令中给出的 二进制、十进制、8进制、16进制或者 ascii码 字符等2、寄存器,操作数存放在寄存器中。
3、存储器,操作数放在内存单元中,可以是字节、字、双字等等。
4、端口,操作数来自外设端口。通过in、out指令操作。
三、怎么分辨立即数,寄存器操作数,存储器操作数?
1.操作数称为立即数,这种寻址方式也就称为立即数寻址方式。
2.指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。3.把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。指令中可以引用的寄存器及其符号名称如下: 8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等; 16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等; 32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。四、8086汇编语言中,操作数有什么属性?
8086中操作数为8位或16位,在处理32位双精度数时一般是分隔成两组16位的数据进行处理。例如:XDD1;X为双精度数如果要完成:X=X+1指令ADDX,1是错误的。正确的应该是:ADDWORDPTRX,1;处理x的低16位ADCWORDPTRX+2,0;处理x的高16位
五、汇编语言,DEC和INC后面的操作数必须是寄存器么?
不是的,还可以是内存地址
;INC、DEC 的指令格式:
;INC r/m
INC rmb ; FE /0 d0 d1 2~4 o---szap
INC rmw ; FF /0 d0 d1 2~4 o---szap
rmb
register or memory byte
rmw
register or memory word
六、何为操作数码?
控技术是指用数字、文字和符号组成的数字指令来实现一台或多台机械设备动作控制的技术。它所控制的通常是位置、角度、速度等机械量和与机械能量流向有关的开关量。数控的产生依赖于数据载体和二进制形式数据运算的出现。
1908年,穿孔的金属薄片互换式数据载体问世19世纪末,以纸为数据载体并具有辅助功能的控制系统被发明1938年,香农在美国麻省理工学院进行了数据快速运算和传输,奠定了现代计算机,包括计算机数字控制系统的基础。数控技术是与机床控制密切结合发展起来的。1952年,第一台数控机床问世,成为世界机械工业史上一件划时代的事件,推动一 动化的发展。
七、plc操作数类型?
PLC的基本数据类型,我们常用的有如下几种:
1. 布尔类型 BOOL ,也就是我们常说的0和1,也可以理解为 True和False,对于PLC来说就是DI或者DO点的输入或输出状态,我们一般用Bool类型表示。对于西门子PLC的DI点,可以使用 I0.0表示,DO点用Q0.0,还有M0.0,V0.0等表示。所以会经常看到 I0.0~I0.7,布尔类型只占用1位。
2. 字节类型 Byte,一个字节有8位,在PLC的存储器里,比如 IB1,MB1,就代表字节,那么将字节分解后是8位,在第一项里布尔类型中提到 I0.0~I0.7就可以组成一个字节IB0,M0.0~M0.7组成MB0,所以我们想要提高读取速度,可以直接使用字节读取,然后再进行分解。数据范围0~255。
3. 字类型 WORD,一个字包含16位,比如MW0,他就是由MB0和MB1组成,在使用字类型时有人使用组态软件读取的值不对,那么就有可能是字节的排列顺序不一样造成,可以对高低字节进行交换,很多软件都有这个功能。数据范围0~65535
4. 双字类型 Double Word,双字包含32位,由2个字组成,比如DW0,它包含2个字MW0和MW2,包含4个字节MB0,MB1,MB2,MB3,所以很多人在使用寄存器时会碰到各种问题,那么就有可能使用的寄存器存在交叉的问题。比如DW0,DW2这两个双字就存在地址交叉的问题。数据范围 0~4294967295
5. 整数类型 INT,一般又可以分为有符号,无符号,数据范围 -32768~32767
6. 双整形 DINT,同上也可以分为有符号,无符号类型,数据范围 -2147483648~2147483647
7.实数类型 real ,显示十进制的数据,可以包括小数点,一般都是32位,当然也有64位的实数类型。
八、目的操作数和源操作数谁在前面?
很多指令有两个操作数,其中写在左边的是目的操作数,右边被称为源操作数。源操作数为寄存器寻址方式,目的操作数是指令操作结果的操作数,两个操作数都有各自的寻址方式。该指令中目的操作数是存储器寻址方式中的直接寻址方式。
操作数就是你要处理的数据,拿80X86汇编语言举个例子:
MOV AH,02 这条指令中要做的处理是将02这个数字放到AH寄存器中。
AH和02都是操作数,02称为原操作数,AH称为目的操作数。
九、汇编equ汇编equ什么意思汇编equ指令?
单片机中,EQU是一个伪指令,意思跟“=”差不多,相当于C语言中的sbit 和sfr两个指令。
十、u是汇编还是反汇编?
u是反汇编指令,动词,指的是由已生成的机器语言(二进制语言)转化为汇编语言的过程,也可以说是汇编的逆向过程。
名词,指的是有机器语言经过反汇编过程生成的汇编语言。
在linux下对利用反汇编器对.o文件进行反汇编。
- 相关评论
- 我要评论
-