用汇编编写程序,用乘法指令实现32位二进制数和16位二进制数相乘

用汇编编写程序,用乘法指令实现32位二进制数和16位二进制数相乘,第1张

CODE SEGMENT ASSUME CS:CODE ORG 100H START: JMP BEGIN X DQ 111111 DQ 0 ; 增加 这个是为了左移时有空间 Y DQ 11111 Z DW 8 DUP(0) BEGIN: PUSH CS POP DS PUSH CS POP ES MOV CX,64 @0: SHR WORD PTR Y+6,1 RCR WORD PTR Y+4,1 RCR WORD PTR Y+2,1 RCR WORD PTR Y,1 JNC @1 MOV AX,WORD PTR X ADD WORD PTR Z,AX MOV AX,WORD PTR X+2 ADC WORD PTR Z+2,AX MOV AX,WORD PTR X+4 ADC WORD PTR Z+4,AX MOV AX,WORD PTR X+6 ADC WORD PTR Z+6,AX MOV AX,WORD PTR X+8 ADC WORD PTR Z+8,AX MOV AX,WORD PTR X+10 ADC WORD PTR Z+10,AX MOV AX,WORD PTR X+12 ADC WORD PTR Z+12,AX MOV AX,WORD PTR X+14 ADC WORD PTR Z+14,AX @1: SHL WORD PTR X,1 RCL WORD PTR X+2,1 RCL WORD PTR X+4,1 RCL WORD PTR X+6,1 RCL WORD PTR X+8,1 RCL WORD PTR X+10,1 RCL WORD PTR X+12,1 RCL WORD PTR X+14,1 DEC CX CMP CX,0 JE @2 JMP @0 @2: MOV AH,4CH INT 21H

第一章一、什么是存储工作方式?答:存储工作方式是先编写程序,再由计算机将这些程序存储起来,然后就可以连续地、快速地执行程序,从而实现各种运算处理。 二、数字计算机的主要特点是什么?答:一是能在程序控制下自动连续地工作;二是运算速度快;三是运算精度高;四是具有很强的信息存储能力;五是通用性强,应用领域极其广泛。 三、衡量计算机性能的基本指标有哪些?答:衡量计算机性能的基本指标有:基本字长、数据通路宽度、运算速度、主存储器容量、外存容易、配置的外围设备及其性能、系统软件配置。第二章一、简要解释下列名词术语1.基数:P24指进位制中会产生进位的数值,即等于每个数位中允许的最大数码值加1,也就是各数位中允许选用的数码个数。2.位权:P24在进位制中每个数码所表示的数值等于该数码本身的值乘以一个与它所在数位有关的常数,这个常数称该位的位权,简称权。3.真值:P30用正负符号加绝对值这种形式表示的数值,称为真值。4.机器数:P30在计算机中使用的连同数符一起数码化了的数,称为机器数。5.原码:P30机器数的表示方法之一,是指一个机器数由符号位和有效数值两个部分组成,最高位为符号位以0为正、1为负表示,有效数值部分用二进制绝对值表示。6.补码:P31机器数的表示方法之一,是符号位也作为数值的一部分直接参与运算,同时又能“化减为加”7.反码:P33机器数的表示方法之一,正数的反码与原码相同,负数的反码表示为,符号位为1,尾数由原码尾数按位变反。8.定点数:P在计算机中,小数点位置固定不变的数,称为定点数。9.浮点数:P35由一个定点整数和一个定点小数组成,小数点的位置根据需要而浮动的数,称为浮点数。10.ASCII码:美国信息交换标准码,每个ASCII字符用七位编码,集中了128个常用字符,大致满足了各种编程语言、西文文字、常见控制命令等的需要。11.指令系统:P40产生各种控制信息的用机器代码表示的指令序列的集合,称为指令系统。它表征了计算机的基本功能,是软件和硬件的主要交界面。12.地址结构:指令中给出地址的个数及约定方式等有关地址信息,在指令中给出几个地址、给出哪些地址。13.隐地址:P41事先隐含约定 *** 作数在某个寄存器中或堆栈中,而指令中并不给出地址码,这种隐含约定的地址称为隐地址。使用隐地址是简化指令地址结构的基本途径。14.堆栈:P50是一种按“后进先出”存取顺序进行存取的存储结构。 二、将二进制数(10101001)2转换为二进制及BCD码。(10101001)2=(42 25)10=(1000001000100101)BCD 三、将八进制数(372)8转换为十进制及BCD码。(372)8=(3125)10=(110001001001010)BCD 四、将十进制数(13/128)转换为二进制。(13/128)10=(00001101)2 五、若X补=01010,则X原、真值等于什么。X原=真值=01010 第三章一、说明串行进位和并行进位方式的不同之处。答:串行进位:是指相加的进位逐级形成的,每一级的进位直接依赖于前一级的进位。称为串行进位(又称行波进位),串行进位的延迟时间较长。并行进位:是指同时形成各级进位信号的方法,称为并行进位,并行进位的运算速度较快,但增加硬件逻辑线路。 二、用变形补码计算机[X]补+[Y]补,并判断是否溢出,是何种溢出。A.[X]补=00110011、 [Y]补=00101101,[X]补+[Y]补=01100000,正溢出B.[X]补=11001101、 [Y]补=11010011,[X]补+[Y]补=10100000,负溢出 三、用变形补码计算机[X]补-[Y]补,并判断是否溢出,是何种溢出。A.[X]补=00110011、 [Y]补=00101101,[X]补+[Y]补=00000110,无溢出B.[X]补=11001101、 [Y]补=11010011,[X]补+[Y]补=11111010,无溢出 四、用无符号数一位乘法计算X×Y,写出运算过程(略) 五、用无符号数来恢复余数法求X÷Y,写出运算过程及结果(商和余数) 六、说明什么是组合逻辑控制器,微程序控制器,并解释有关的基本概念。答:按产生控制信号的方式不同控制器可分:组合逻辑控制器和微程序控制器。组合逻辑控制器是指产生控制信号即微命令的部件,是用组合逻辑线路来实现的,微程序控制器是将机器指令的 *** 作(从取指令到执行)分解为若干个更基本的微 *** 作序列,并将有磁的控制信息(微命令)以微码形式编成微指令,输入控制存储器中。 七、说明教材模型机中下列寄存器的作用:通用寄存器、暂存器、IR、PC、MAR、MDR。(1)通用寄存器:是一组可编程访问、具有多种功能的寄存器。指令系统为其分配编号,即寄存器地址。其本身在逻辑上只有接收信息、存储信息和发送信息的功能,但通过编程与运算部件的配合可实现多种功能。(2)暂存器:3个:C、D、Z,C用来暂存从主存储器读出的数据,D设置在ALU的输入端,用来存放一个 *** 作数,还可暂存从主存储器读出的数据,并设有左移和右移的功能。Z设置在ALU的输出端,用来存放运算结果。指令系统中没有为其分配编号,故不能编址访问。(3)指令寄存器IR:用来存放当前正在执行的一条指令。IR的输出是控制器产生控制信号的主要逻辑依据。(4)程序计数器PC:又称为指令计数器或指令指针IP。作用是提供指令的地址。具有加1计数功能,并可编程访问。地址寄存器MAR用来存放CPU访问主存或I/O接口的地址。MAR连接地址总线的输出门是三态门。数据寄存MDR用来存放CPU与主存或I/O接口之间传送的数据。 八、写出下列指令的读取与执行流程式。(1)MOV R0,R2FT0 PC—MARFT1 M—MDR—IR,PC+1—PCST0 R2—CET0 C—R0 (2)ADD R0,X(R1)FT0 PC—MARFT1 M—MDR—IR,PC+1—PCST0 PC—MARST1 M—MDR—D,PC+1—PCST2 D+R1—ZST3 Z—MARST4 M—MDR—DDT0 R0—DET0 C ADD D—EET1 Z—R0 (3)JMP(R0)FT0 PC—MARFT1 M—MDR—IR,PC+1—PCJP:ET0 R0—MARET1—MDR—PCNJP:ET0 PC第四章一、8086/8088CPU中有哪些寄存器,各有什么作用?答:见教材P116页。 二、8086/8088CPU中标志寄存器各标志位的含义。答:见教材P120页。 三、8086/8088CPU中,进行下列8位二进制数的运算后,标志寄存器中OF,ZF,SF,CF的值各是多少?a OF=0,ZF=1,SF=0,CF=1b OF=1,ZF=0,SF=1,CF=1 四、说明基地址(P129)与段基址(P116)的不同。答:基地址是指基址寄存器BX或基址指针BP的内容;段基址是指段基值左移四位后得到一个20位的物理地址。 五、说明下列指令中源 *** 作数、目的 *** 作数的寻址方式。指令目的 *** 作数源 *** 作数ADD AX,0A51HAX寄存器寻址0A51H立即数寻址MOV BL,DATA1BL寄存器寻址DATA1是存储器寻址方式中的直接寻址,用符号地址表示PUSH ES隐含指定堆栈,寄存器寻址ES寄存器寻址CLC无 *** 作数 六、指出下列指令语法是否有错,是什么错误。MOV AL,0F5H;对GMP AL,100H ;错,100H与AL不匹配。OR AH,AL;对DEC CX,1;错,1是多余是。 七、假设(AX)=0A5C6,(CX)=0F03H ,则下列指令执行后,(AX)=?,(CF)=?RCL AX,CL;(AX)=2E32H,(CF)=1HAND AH,CH;(AX)=0E32H,(CF)=1HRCR AX,CL;(AX)=0A1C6H,(CF)=0H 第五章一、设VAR1,VAR2是变量名,指出下列语句语法是否有错,是什么错。MOV AX,VAR1+VAR2MOV BL,AL SHR3ADD BYTE PTR[BX],1000答:MOV AX,VAR1+VAR2;源 *** 作数变量名之间不能用+运算。 MOV BL,AL SHR3;源 *** 作数AL不能使用运算符,另外逻辑右移指令SHR运算符之间只能是常数,不能是寄存器 *** 作数,该句的功能可以用两名来实现。 ADD BYTE PTR[BX],1000;PTR为属性运算符,是把地址表达式确定的存储单元临时设定为PTR左边的类型(BYTE,WORD,DWOR等),该题主要错在BYTE与1000不匹配。 二、下列指令执行后,(AL)=?如将SHR指令换成ROR或RCR,那么AL中的内容分别是多少。MOV AL,0FH;(AL)=0FHXOR AL,0FFH;(AL)=0F0HMOV CL,7;(CL)=7SHR AL,CL;(AL)=1H答:上述指令执行后,(AL)=1H;当ROR AL,CL;(AL)=0E1H当RCR AL,CL;(AL)=0C1H。 三、试用两条指令完成对寄存器AH和AL 分别加1,且AL中加1形成的进位加在AH的最低位,AH中加1形成的进位加在AL的最低位。答:ADD AX,101H RCL AX,1H 第六章一、在3级存储体系中,各层有什么作用,特点是什么?名称作用构成存取方式速度容量 主存储器用来存入需要执行的程序及需要处理的数据,能由CPU直接读出或写入。由半导体动态MOS存储器构成,采取随机存取方式,按字节存放或读取内容工作速度快有一定存储容量外存储器用来存放需要联机存放,但暂不执行的程序和数据,当需要时再由外存调入主存磁盘、磁带等磁表面存储器和光盘存储器构成。 按文件进行组织,采取顺序存取或直接存取速度较低存储容量大、高速缓冲存储器用于存放CPU在最近一小段时间内要使用的程序和数据。作为主存某些局部区域的内容副本。主要为了解决CPU与主存之间的速度匹配问题用高速半导体存储器构成,存取周期约为几至十几ns 采用随机存取方式,便于CPU直接访问工作速度快 存储容量小 二、主存的容量可以用哪些指标来描述?答:主存容量常用字节数或单元数位数两种方式来描述。字节数:若主存按字节编址,即每个存储单元有8位,则相应地用字节数表示存储容量的大小。单元数位数:若主存按字编址,即每个存储单元存放一个字,字长超过8位,则存储容量用单元数位数或字数位数来描述,即注明主存有多少单元,每个单元有多少位。 三、解释什么是随机存取、顺序存取、直接存取方式,各适用什么存储器?答:随机存取方式——即能按地址直接访问存储器中的任一单元,且访问所需的时间与单元的地址无关。适用于主存储器和高速缓存。顺序存取方式——文件或数据顺序地记录在外存储器(磁带),从开始顺序寻址,找到所需文件、数据块的位置,然后再读写进行。访问的时间与信息在磁中的位置。适用于外存储器。直接存取方式——直接指向存储器中某个较小的局部区域开始顺序寻址,访问的时间与信息所在位置有关。适用于外存储器。 四、什么是刷新?答:刷新是定期按原存信息向电容补充电荷。第七章一、什么是串行、并行接口?答:并行接口是指接口与系统总路线之间、接口与外设之间均按并行方式传送数据。串行接口是指接口与外设之间采取串行方式传送数据,接口与系统总路线之间仍按并行方式进行传送。 二、统总线和外总线在功能、信号组成上有哪些区别?名称功能信号组成系统总线也称为板级总线,用来连接计算机系统内各个大功能部件。按其功能可分:电源线、地址线、控制线、数据线等4组信号线外总线也称通讯总线,用来连接多个计算机系统,或连接计算机系统与外设。因外总线传输距离较远,为减少传输线的数量,不专门设置地址线,仅有数据线及少量的简单的控制信号线。 三、什么是程序中断方式,特点是什么?答:程序中断方式是指CPU在执行程序的过程中,若因出现某种随机事件而收到中断请求,遇暂时停止现行程序的执行,转去执行下一段中断服务程序,以处理该事件,并在处理完毕后自动恢复原程序的执行。特点:程序切换(程序转移)和随机性。程序切换即由当前正在执行的程序转到中断服务程序,处理完随机事件后再转回被中止的程序。随机必性即中断随机发生,无法预先安排,可从程序的任一位置进行切换,并且中断处理程序的功能也往往与被中止的程序无直接关联。 四、解释向量中断的概念。答:向量中断方式:将各中断服务程序的入口地址(中断向量)组织在中断向量表中。当CPU响应中断时,由硬件直接产生对应于中断源的向量地址,按该地址访问向量表,取得服务程序的入口,转入相应的中断服务程序。 其最大的优点是能快速地获得中断程序服务的入口地址,直接转入对应的中断服务程序。注:这里注意几个概念:P314中断向量:在向量中断方式中,常将中断服务程序入口地址和服务程序的状态字,称为中断向量。中断向量表:将各个中断服务程序的入中地址及其程序状态字集中存放在一张一维表格中,该表称为中断向量表,通常安排在主存的一段连续存储区中。向量地址:访问中断向量表的存储器地址称为向量地址,也称中断指针。五、什么是DMA方式,特点是什么?答:DMA方式:是指直接依靠硬件在主存和I/O设备之间传送数据,传送期间不需要CPU程序干预。特点是:一是具有随机性:以响应随机请求的方式实现主存与I/O设备之间的直接数据传送;二是用硬件实现传送,传送速度快、传送 *** 作简单,由于不用切换程序,不需要执行与程序切换有关的一系列 *** 作,传送一个数据通常只占一个总线周期的时间;三是具有更高的并行性。 第八章一、外部设备分几类,它们的主要功能是什么?答:见教材P334页。 二、点阵打印的基本原理是什么?答:见教材P343页。 三、显存的作用是什么?答:见教材P353页。 四、常见的磁记录方式有几种?答:见教材P365页。

id) //将McBSP0初始化为SPI

{

SPSA0=SPCR10_SUB;

SPSD0=0x00; //接收端复位RRST=0

SPSA0=SPCR20_SUB;

SPSD0=0x00; //发送端复位XRST=0

SPSA0=SPCR10_SUB;

SPSD0=0x1800; //CLKSTP=11

SPSA0=PCR0_SUB;

SPSD0=0x0A08; //CLKXM=1(主设备);CLKXP=0

SPSA0=RCR10_SUB;

SPSD0=0x00; //RWDLEN1=000,接收包长度为8

SPSA0=RCR20_SUB;

SPSD0=0x0001; //在BFSX信号上提供正确的建立时间

SPSA0=XCR10_SUB;

SPSD0=0x00; //XWDLEN1=000,发送包长度为8

SPSA0=XCR20_SUB;

SPSD0=0x0001; //在BFSX信号上提供正确的建立时间

SPSA0=SRGR10_SUB;

SPSD0=0x00FE; //为采样率时钟定义分频因子

SPSA0=SRGR20_SUB;

SPSD0=0x2000; //CLKSM=1,从CPU得到时钟;每个包传送时,激活BFSX信号

SPSA0=SPCR20_SUB;

SPSD0=0x0063; //发送端脱离复位XRST=1

SPSA0=SPCR10_SUB;

SPSD0|=0x0001; //接收端脱离复位RRST=1;采样率产生器脱离复位GRST=1

delay(256); //为使McBSP逻辑稳定,需等待两个采样率产生器时钟周期

}

二.HDn作为片选信号时DSP与MCP2510通信过程

21读程序

211 MCP2510读取过程

在读 *** 作开始时,CS引脚将被置为低电平。随后读指令和8 位地址码(A7 至 A0)将被依次送入MCP2510 。在接收到读指令和地址码之后, MCP2510 指定地址寄存器中的数据将被移出通过SO引脚进行发送。每一数据字节移出后,器件内部的地址指针将自动加一以指向下一地址。因此可以对下一个连续地址寄存器进行读 *** 作。通过该方法可以顺序读取任意个连续地址寄存器中的数据。通过拉高CS引脚电平可以结束读 *** 作。

编程时需注意问题:

1. SPI的读 *** 作是通过写 *** 作完成的。因此在DSP发送地址字节后,再发送一任意8位数据以产生接收时钟。

2. 在发送完任意8位数据后,DSP要有个延时,以等待写入DXR的数据从发送端移出,从而保证从2510输出的数据能够正确地被DSP接收。延时时间应大于采样率产生器输出的8个周期,最好长一些。

3. 由于SPI在发送数据的同时也在接收数据,所以在读取有效数据前(即在发送地址字节完毕后)要先清空接收缓冲器,否则可能会因为接收缓冲器溢出而无法接收有用的数据。可以通过读取3次(因为5402的McBSP有3个接收缓冲器)接收缓冲器DRR的值来实现清空缓冲器的 *** 作,读取之前要注意延时(等待地址字节发送完毕)。

212 示例程序

Uint16 ReadMCP2510(Uint16 Addr)

{

ChipSlctMCP2510(0); //打开片选

NOP;

NOP;

NOP;

//发送读指令

DXR10=READ_MCP2510;

SPSA0=SPCR20_SUB;

while(!(SPSD0&0x02)) //等待上一个数据发送完毕

//发送地址

DXR10=Addr;

SPSA0=SPCR20_SUB;

while(!(SPSD0&0x02)) //等待上一个数据发送完毕

delay(1000); //延时,等待地址字节从DX移出

//读取数据

Addr=DRR10; //读3次,清空缓冲器

Addr=DRR10;

Addr=DRR10;

DXR10=0; //发送任意数据,以便产生接收时钟

SPSA0=SPCR20_SUB;

while(!(SPSD0&0x02)) //等待上一个数据发送完毕

delay(1000); //延时,等待数据接收

Addr=DRR10; //第一次为无效数据

ChipSlctMCP2510(3);

return Addr;

}

22写程序

221 MCP2510写 *** 作

置CS引脚为低电平启动写 *** 作。 启动写指令后,地址码以及至少一个字节的数据被依次发送到MCP2510 。只要 CS 保持低电平,就可以对连续地址寄存器进行顺序写 *** 作。在SCK 引线上的上升沿,数据字节将从D0位开始依次被写入。如果CS 引脚在字节的8 位数据尚未发送完之前跳变到高电平,该字节的写 *** 作将被中止,而之前发送的字节已经写入。

编程时需注意问题:

1 2510如何区分指令、地址和数据?由于读写指令、地址字节和数据字节的值可能会一样,所以有必要通过一定的时序来将他们区分开来。经实验验证,2510应该是通过片选信号CS来区分这几个数据的,当CS从高变低后,第一个字节就是指令,哪怕上次没有正确的读写,只要将CS置1,然后再置0,就会重新开始一个指令的周期。

2 发送完数据字节后一定要有个延时来等待数据字节从DX引脚发送出去,之后才能将片选信号CS置1,否则无法正确写入数据。

222 示例程序

void WriteMCP2510(Uint16 Addr,Uint16 wrData)

{

ChipSlctMCP2510(0);

NOP;

NOP;

NOP;

DXR10=WRITE_MCP2510;

SPSA0=SPCR20_SUB;

while(!(SPSD0&0x02)) //等待上一个数据发送完毕

DXR10=Addr;

SPSA0=SPCR20_SUB;

while(!(SPSD0&0x02)) //等待上一个数据发送完毕

DXR10=wrData;

SPSA0=SPCR20_SUB;

while(!(SPSD0&0x02)) //等待上一个数据发送完毕

delay(1000);

ChipSlctMCP2510(3);

}

三.BFSX作为片选信号时DSP与MCP2510通信过程

由于要完成2510的读写 *** 作需要3个字节,所以采用BFSX引脚作为MCP2510的片选信号时需要将XCR1和RCR1中的XWDLEN1、RWDLEN1设置为100(24bit)。

由于发送接收字长度设置为24位,因此在发送过程中需要用到DXR2和DRR2寄存器,在此需要注意的一点就是,DXR2(DRR2)必须要比DXR1(DRR1)先初始化或读取。其中DXR2(DRR2)中存放的是24bit的高8位,DXR1(DRR1)中存放的是24bit的低16位。发送时DXR2中的数据首先发送,接收时数据首先存放到DRR2中,因此DXR2(DRR2)中存放指令字节,DXR1(DRR1)中由高到低存放地址和数据。

下面为一个简单的调试程序。

Uint16 Debug24bit( )

{

int i;

DXR20=0x02; //写指令

DXR10=0x0F01; //0F为CANCTRL地址,01为待写入的数据

delay(3000); //延时,等待发送完毕

i=DRR10; //清空接收缓冲器

i=DRR10;

i=DRR10;

DXR20=0x03; //读指令

DXR10=0x0F00; //0F为CANCTRL地址,00用于读取数据

delay(3000); //延时,等待接收完毕

i=DRR10&0x00FF; //DRR10低8位为有用数据

return i;

}

四. 通信时MCP2510的初始化

411 确定时间份额

计算公式:

时间份额TQ定义为:TQ = 2(BaudRate + 1)TOSC

其中,BaudRate 是由 CNF1BRP<5:0> 表征的二进制数。

标称位时间 = TQ (Sync_Seg + Prop_Seg +Phase_Seg1 + Phase_Seg2)

- 同步段(Sync_Seg)

- 传播时间段(Prop_Seg)

- 相位缓冲段1 (Phase_Seg1)

- 相位缓冲段2 (Phase_Seg2)

假设每个标称位包含N个时间份额TQ,则根据以上公式有:1/100K = NTQ

现设定分频值BaudRate为1,根据以上公式计算,得出在4MHz时钟时,要实现100Kbps的波特率每个标称位包含个10时间份额TQ,在N满足要求的情况下BaudRate还可以设置为其他值,由MCP2510的手册得知的TQ数量N应在6-25之间。然而在满足这个前提下,应尽量使TQ的时间短一些,即一个标称位的时间份额数量N多一些,这样选择采样点位置时具有更好的分辨率。

412 设置时间段和采样点

在确定了一个标称位包含的时间份额数量后,还需要对各个时间段包含的时间份额进行分配,以确定采样点的位置。位的采样时刻取决于系统参数,通常应发生在位时间的60-70%处。同时,同步段的时间份额为1 TQ,TDELAY典型值为1-2TQ。因此时间份额分配如下:

(Sync_Seg + Prop_Seg +Phase_Seg1 + Phase_Seg2)=(1+2+3+4)

413 确定同步跳转宽度和采样次数

根据规则,SJW最大值 为4TQ。然而通常情况下,只有当不同节点的时钟发生不够精确或不稳定时,例如采用陶瓷谐振器时,才需要较大的SJW。一般情况下, SJW取1即可满足要求。

基本指令:

一般指令:

LD

载入 A 接点

LDI

载入 B 接点

AND

串联 A 接点

ANI

串联 B 接点

OR

并联 A 接点

ORI

并联 B 接点

ANB

串联回路方块

ORB

并联回路方块

MPS

存入堆栈

MRD

堆栈读取 (指针不动)

MPP

读出堆栈

输出指令:

OUT

驱动线圈

SET

动作保持 (ON)

RST

接点或寄存器清除

定时器,计数器:

TMR

16 位定时器

CNT

16 位计数器

DCNT

32 位计数器

主控指令:

MC

公共串联接点的连接

MCR

公共串联接点的解除

接点上升沿/下降沿输出指令:

LDP

上升沿检出动作开始

LDF

下降沿检出动作开始

ANDP

上升沿检出串联连接

ANDF

下降沿检出串联连接

ORP

上升沿检出并联连接

ORF

下降沿检出并联连接

脉冲输出指令:

PLS

上升沿检出

PLF

下降沿检出

结束指令:

END

程序结束

其它指令:

NOP

无动作

INV

运算结果反相

P

指针

I

中断插入指针

步进梯形指令:

STL

程序跳至副母线

RET

程序返回主母线

应用指令:

程序流程控制:

00

CJ

条件转移

01

CALL

呼叫子程序

02

SRET

子程序结束

03

IRET

中断插入返回

04

EI

中断插入允许

05

DI

中断插入禁止

06

FEND

主程序结束

07

WDT

逾时监视定时器

08

FOR

循环范围开始

09

NEXT

循环范围结束

传送比较:

10

CMP

比较设定输出

11

ZCP

区间比较

12

MOV

数据传送

13

SMOV

移位传送

14

CML

反转传送

15

BMOV

全部传送

16

FMOV

多点传送

17

XCH

数据交换

18

BCD

BIN → BCD 变换

19

BIN

BCD → BIN 变换

四则逻辑运算:

20

ADD

BIN 加法

21

SUB

BIN 减法

22

MUL

BIN 乘法

23

DIV

BIN 除法

24

INC

BIN 加一

25

DEC

BIN 减一

26

WAND/DAND

逻辑与 (AND) 运算

27

WOR/DOR

逻辑或 (OR) 运算

28

WXOR/DXOR

逻辑异或 (XOR) 运算

29

NEG

取负数(取 2 的补码)

循环移位与移位:

30

ROR

右循环

31

ROL

左循环

32

RCR

附进位标志右循环

33

RCL

附进位标志左循环

34

SFTR

位右移

35

SFTL

位左移

36

WSFR

字右移

37

WSFL

字左移

38

SFWR

位移写入

39

SFRD

位移读出

数据处理:

40

ZRST

批次复位

41

DECO

译码

42

ENCO

编码

43

SUM

On 位数量

44

BON

On 位判定

45

MEAN

平均值

46

ANS

信号报警器置位

47

ANR

信号报警器复位

48

SQR

BIN 开平方

49

FLT

BIN 整数 → 二进制浮点数变换

高速处理:

50

REF

I/O 状态即时刷新

51

REFF

输入滤波器时间调整

52

MTR

矩阵分时输入

53

DHSCS

比较置位(高速计数器)

54

DHSCR

比较复位(高速计数器)

55

DHSZ

区间比较(高速计数器)

56

SPD

脉冲频率检测

57

PLSY

脉冲输出

58

PWM

脉冲波宽调制

59

PLSR

附加减速脉冲输出

便利指令:

60

IST

手动/自动控制

61

SER

数据检索

62

ABSD

绝对方式凸轮控制

63

INCD

相对方式凸轮控制

64

TTMR

示教式定时器

65

STMR

特殊定时器

66

ALT

On/Off 交替

67

RAMP

斜坡信号

68

DTM

数据转换与搬移

69

SORT

数据整理排序

外部设定显示:

70

TKY

十键键盘输入

71

HKY

十六键键盘输入

72

DSW

数字开关

73

SEGD

七段显示器译码

74

SEGL

七段显示器分时显示

75

ARWS

方向开关控制

76

ASC

ASCII 码变换

77

PR

ASCII 码打印

外部SER设备:

78

FROM

扩展模块CR数据读出

79

TO

扩展模块CR数据写入

80

RS

串行数据传送

81

PRUN

8 进制位传送

82

ASCI

HEX 转为 ASCII

83

HEX

ASCII 转为 HEX

84

CCD

校验码

85

VRRD

电位器值读出

86

VRSC

电位器刻度读出

87

ABS

绝对值运算

88

PID

PID 运算

台达变频器通讯:

100

MODRD

MODBUS 数据读取

101

MODWR

MODBUS 数据写入

102

FWD

变频器正转指令

103

REV

变频器反转指令

104

STOP

变频器停止指令

105

RDST

变频器状态读取

106

RSTEF

变频器异常复位

107

LRC

LRC 校验码计算

108

CRC

CRC 校验码计算

150

MODRW

MODBUS 资料读出/入

206

ASDRW

台达伺服器通

浮点运算:

110

DECMP

二进制浮点数比较

112

DMOVR

浮点数值数据移动

111

DEZCP

二进制浮点数区间比较

116

DRAD

角度→弧度

117

DDEG

弧度→角度

118

DEBCD

二进制浮点数→十进制浮点数

119

DEBIN

十进制浮点数→二进制浮点数

120

DEADD

二进制浮点数加法

121

DESUB

二进制浮点数法

122

DEMUL

二进制浮点数乘法

123

DEDIV

二进制浮点数除法

124

DEXP

二进制浮点数取指数

125

DLN

二进制浮点数取自然对数

126

DLOG

二进制浮点数取对数

127

DESQR

二进制浮点数平方

128

DPOW

浮点数乘方

129

INT

二进制浮点数→BIN 整数变换

130

DSIN

二进制浮点数SIN 运算

131

DCOS

二进制浮点数COS 运算

132

DTAN

二进制浮点数TAN 运算

133

DASIN

二进制浮点数ASIN 运算

134

DACOS

二进制浮点数ACOS 运算

135

DATAN

二进制浮点数ATAN 运算

136

DSINH

二进制浮点数SINH 运算

137

DCOSH

二进制浮点数COSH 运算

138

DTANH

二进制浮点数TANH 运算

172

DADDR

浮点数值加法

173

DSUBR

浮点数值减法

174

DMULR

浮点数值乘法

175

DDIVR

浮点数值除法

数据处理 II :

143

DELAY

延迟指令

144

GPWM

一般用脉冲波宽调变

145

FTC

模糊化温度控制

147

SWAP

上/下 字节交换

148

MEMR

文件寄存器读出

149

MEMW

文件寄存器写入

151

PWD

输入脉宽检测

152

RTMU

I 中断子程序执行时间测量开始

153

RTMD

I 中断子程序执行时间测量结束

154

RAND

随机数值产生

109

SWRD

数字开关读取

196

HST

高速定时器

176

MMOV

16à32 位数值转换

177

GPS

(GPS) 接收通讯指令

178

DSPA

太阳能板位置指令

179

WSUM

求和

202

SCAL

比例值运算

203

SCLP

参数型比例值运算

205

CMPT

表格比较指令

207

CSFO

撷取速度与追随输出指令

定位控制:

155

DABSR

ABS 现在值读出

156

ZRN

原点回归

157

PLSV

附旋转方向脉冲输出

158

DRVI

相对定位

159

DRVA

绝对定位

191

DPPMR

双轴相对点运动

192

DPPMA

双轴绝对点运动

193

DCIMR

双轴相对圆弧插补

194

DCIMA

双轴绝对圆弧插补

195

DPTPO

单轴建表式脉冲输出

197

DCLLM

闭回路定位控制

198

DVSPO

可变速度脉波输出

199

DICF

立即变更频率指令

万年历:

160

TCMP

万年历数据比较

161

TZCP

万年历数据取间比较

162

TADD

万年历数据加法

163

TSUB

万年历数据减法

166

TRD

万年历数据读出

167

TWR

万年历数据写入

169

HOUR

时间表

格雷码:

170

GRY

BIN→GRY 码变换

171

GBIN

GRY 码→BIN 变换

矩阵:

180

MAND

矩阵与 (AND)运算

181

MOR

矩阵或 (OR)运算

182

MXOR

矩阵异或 (XOR)运算

183

MXNR

矩阵同或 (XNR)运算

184

MINV

矩阵反相

185

MCMP

矩阵比较

186

MBRD

矩阵位读出

187

MBWR

矩阵位写入

188

MBS

矩阵位位移

189

MBR

矩阵位循环移位

190

MBC

矩阵位状态计数

接点型态逻辑运算:

215

LD&

S1 & S2

216

LD|

S1 | S2

217

LD^

S1 ^ S2

218

AND&

S1 & S2

219

AND|

S1 | S2

220

AND^

S1 ^ S2

221

OR&

S1 & S2

222

OR|

S1 | S2

223

OR^

S1 ^ S2

接点型态比较指令:

224

LD=

S1 = S2

225

LD>

S1 > S2

226

LD<

S1 < S2

228

LD<>

S1 ≠ S2

229

LD<=

S1 ≦ S2

230

LD>=

S1 ≧ S2

232

AND=

S1 = S2

233

AND>

S1 > S2

234

AND<

S1 < S2

236

AND<>

S1 ≠ S2

237

AND<=

S1 ≦ S2

238

AND>=

S1 ≧ S2

240

OR=

S1 = S2

241

OR>

S1 > S2

242

OR<

S1 < S2

244

OR<>

S1 ≠ S2

245

OR<=

S1 ≦ S2

246

OR>=

S1 ≧ S2

以上就是关于用汇编编写程序,用乘法指令实现32位二进制数和16位二进制数相乘全部的内容,包括:用汇编编写程序,用乘法指令实现32位二进制数和16位二进制数相乘、求计算机组成原理形成性考核册答案、dsp中系统时钟初始化程序应该怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9714022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存