L指令集

合集下载

IL指令集

IL指令集
Cgt.Un
比较两个无符号的或不可排序的值。如果第一个值大于第二个值,则将整数值1 (int32)推送到计算堆栈上;反之,将0 (int32)推送到计算堆栈上。
Ckfinite
如果值不是有限数,则引发ArithmeticException。
Clt
比较两个值。如果第一个值小于第二个值,则将整数值1 (int32)推送到计算堆栈上;反之,将0 (int32)推送到计算堆栈上。
将位于计算堆栈顶部的无符号值转换为unsigned int64,并在溢出时引发OverflowException。
Conv.R.Un
将位于计算堆栈顶部的无符号整数值转换为float32。
Conv.R4
将位于计算堆栈顶部的值转换为float32。
Conv.R8
将位于计算堆栈顶部的值转换为float64。
Conv.Ovf.I8
将位于计算堆栈顶部的有符号值转换为有符号int64,并在溢出时引发OverflowException。
Conv.Ovf.I8.Un
将位于计算堆栈顶部的无符号值转换为有符号int64,并在溢出时引发OverflowException。
Conv.Ovf.U
将位于计算堆栈顶部的有符号值转换为unsigned native int,并在溢出时引发OverflowException。
将整数值8作为int32推送到计算堆栈上。
Ldc.I4.M1
将整数值-1作为int32推送到计算堆栈上。
Ldc.I4.S
将提供的int8值作为int32推送到计算堆栈上(短格式)。
Ldc.I8
将所提供的int64类型的值作为int64推送到计算堆栈上。
Ldc.R4
将所提供的float32类型的值作为F (float)类型推送到计算堆栈上。

计算机组成原理第4章指令系统课件

计算机组成原理第4章指令系统课件

4.2 指令的格式
4.2.1 指令的编码格式
操作码OC
AC1
AC2
(1)把保存操作前原来操作数的地址称为源点地址(SS), 把保存指令执行结果的地址称为终点地址或目的地址(DD)。
(2)将源点与终点操作数进行操作码规定的操作后,将 结果存入终点地址。通常二地址指令又称为双操作数指令。
ADD R0,R1表示将R0寄存器的内容和R1寄存器的内容相加以
5 异或XOR
XOR指令对两个操作数进 行按位异或运算。
4.4 指令的种类
4.4.4 移位、循环类指令
CF
位移指令SAL/SHL操作示意图
CF
SAR操作示意图
CF 0
SHR操作示意图
4.4 指令的种类
4.4.4 移位、循环类指令
不带进位标志的循环左移指令ROL MSB 操作数 LSB
CF
不带进位标志的循环右移指令ROR MSB 操作数 LSB
例如:在IBM-PC指令系统中
MOV
AX,05FFH
4.3 寻址方式
4.3.2 常用的寻址方式
2.直接寻址方式
(1)含义: 是指地址字段直接指明操作数在存储器内的位置的寻址 方法。即形式地址等于有效地址。 (2)优缺点: A、优点:简单,不需要进行加法运算。 B、缺点:地址空间指令地址字段长度的限制。
4.2 指令的格式
4.2.3 指令助记符
通常采用一些符号来代表二进制数据,这些符号即指 令助记符。
指令助记符 ADD SUB MUL DIV
助记符示例
含义
指令助记符
相加
AND
相减
OR
相乘
LOAD
相除
STORE

L-system(L系统)

L-system(L系统)

L-System公开2012-03-23 13:44 |(分类:默认分类)随着计算机图形学的飞速发展,人们一直研究在计算机上模拟各种植物形态的可能性。

目前,人们基本上利用Navier-Stokes 方程来模拟植物的形态,而其模拟出来的植物由于形态单一、逼真度不够高,已经不能满足农业、工业、军事、3D 等方面的要求。

通过对上述的情况进行研究和分析之后,我们寻找出一种能够逼真地模拟出植物的方法即BSP 的优化—L-System。

在BSP 和L-System的基础上,我们做了大量的实验,以验证这一方法的可行性、有效性。

(一)L-System 的数学模型及其构型的基本方法几个世纪以来,自然界中多彩多姿的植物深深地吸引了许多数学家,他们对其显著的几何特性作了广泛的研究,例如,叶子的左右对称,花的旋转对称,松果上鳞片的螺旋排列等。

1968 年,美国的生物学家Aristid Lindermayer(1925~1989)提出了Lindenmayer 系统,简称L-System。

它是描述植物生长的数学模型,其基本思想可解释为理想化的树木生长过程:从一条树枝(种子)开始,发出新的芽枝,而发过芽枝的枝干又都发新芽枝……最后长出叶子。

这一生长规律体现为斐波那契数列:1,1,2,3,5,8,13,21,34,55,…记该序列的第n 项为Fn,则有递推关系式:Fn+2=Fn+1+Fn (n=1,2,3,…)根据L-System 的基本思想,我们先建立二维树的数学模型:从树干开始,然后沿着树干逐渐扩展到连接的树枝,再以递归的方式进行同样的过程,该过程持续到最终分枝。

为简明起见,在这一模型中,每一树枝都化为一条直线,每次循环,树枝都被缩放,旋转和平移到其父枝的新位置上(如图3-1-1)。

图3-1-1以L-System 做为数学理论框架,研究植物的进化和造型,Smith、Anono 和Kunii 率先将L-System 引入到计算机图形学中,显示了L-System 在计算机模拟植物方面的潜力,为计算机模拟植物的真实感图形提供了强有力的工具。

IL指令集

IL指令集

IL指令集命令参数类型类型描述int8 1字节有符号整型数uint8 1字节无符号短整型数int32 4字节有符号整型数uint32 4字节无符号整型数int64 8字节有符号整型数float32 4字节浮点数float64 8字节浮点数<Method> MethodDef或MemberRef Token<Field> FieldDef或MemberRef Token<Type> TypeDef, TypeRef, 或TypeSpec token<Signature> StandAloneSig token<String> User-defined string token栈的赋值类型类型描述int32 4字节有符号整型数int64 8字节有符号整型数Float 80-bit floating-point number& 托管或者非托管指针o Object 引用* 非特指类型IL指令,参数和栈的操作编码指令名称参数pop push00 nop01 break02 ldarg.0 *03 ldarg.1 *04 ldarg.2 *05 ldarg.3 *06 ldloc.0 *07 ldloc.1 *08 ldloc.2 *09 ldloc.3 *0A stloc.0 *0B stloc.1 *0C stloc.2 *0D stloc.3 *0E ldarg.s uint8 *0F ldarga.s uint8 &10 starg.s uint8 *11 ldloc.s uint8 *12 ldloca.s uint8 &13 stloc.s uint8 *14 ldnull &=015 ldc.i4.ml , ldc.i4.Ml int32=-116 ldc.i4.0 int32=017 ldc.i4.1 int32=118 ldc.i4.2 int32=219 ldc.i4.3 int32=3 1A ldc.i4.4 int32=4 1B ldc.i4.5 int32=5 1C ldc.i4.6 int32=6 1D ldc.i4.7 int32=7 1E ldc.i4.8 int32=8 1F ldc.i4.s int8 int3220 ldc.i4 int32 int3221 ldc.i8 int64 int6422 ldc.r4 float32 Float23 ldc.r8 float64 Float25 dup * *,*26 pop *27 jmp <Method>28 call <Method> N arguments Ret.value29 calli <Signature> N arguments Ret.value 2A ret *2B br.s int82C brfalse.s,brnull.s,brzero.s int8 int322D brture.s,brinst.s int8 int322E beq.s int8 *,*2F bge.s int8 *,*30 bgt.s int8 *,*31 ble.s int8 *,*32 blt.s int8 *,*33 bne.un.s int8 *,*34 bge.un.s int8 *,*35 bgt.un.s int8 *,*36 ble.un.s int8 *,*37 blt.un.s int8 *,*38 br int3239 brfalse,brnull,brzero int32 int323A brtrue,brinst int32 int323B beq int32 *,*3C bge int32 *,*3E ble int32 *,*3F blt int32 *,*40 bne.un int32 *,*41 bge.un int32 *,*42 bgt.un int32 *,*43 ble.un int32 *,*44 blt.un int32 *,*int3245 switch (uint32=N)+N(int32)46 ldind.il & int3247 ldind.ul & int3248 ldind.i2 & int3249 ldind.u2 & int32 4A ldind.i4 & int32 4B ldind.u4 & int32 4C ldind.i8,ldind,u8 & int64 4D ldind.i & int32 4E ldind.r4 & Float 4F ldind.r8 & Flaot50 ldind.ref & &51 stind.ref &,&52 stind.i1 int32,&53 stind.i2 int32,&54 stind.i4 int32,&55 stind.i8 int32,&56 stind.r4 Float,&57 stind.r8 Float,&58 add *,* *59 sub *,* *5A mul *,* *5B div *,* *5C div.un *,* *5D rem *,* *5E rem.un *,* *5F and *,* *60 or *,* *61 xor *,* *62 shl *,* *63 shr *,* *64 shr.un *,* *65 neg * *66 not * *67 conv.i1 * int3268 conv.i2 * int3269 conv.i4 * int326A conv.i8 * int646B conv.r4 * Float6C conv.r8 * Float6D conv.u4 * int326E conv.u8 * int646F callvirt <Method> N arguments Ret.value70 cpobj <Type> &,&71 ldobj <Type> & *72 ldstr <String> o73 newobj <Method> N arguments o74 castclass <Type> o o75 isinst <Type> o int3276 conv.r.un * Float79 unbox <Type> o &7A throw o7B ldfld <Field> o/&/* *7C ldflda <Field> o/& &7D stfld <Field> o/&,*7E ldsfld <Field> *7F ldsflda <Field> &80 stsfld <Field> *81 stobj <Type> &,*82 conv.ovf.i1.un * int3283 ocnv.ovf.i2.un * int3284 conv.ovf.i4.un * int3285 conv.ovf.i8.un * int6486 conv.ovf.u1.un * int3287 conv.ovf.u2.un * int3288 conv.ovf.u4.un * int3289 conv.ovf.u8.un * int648A conv.ovf.i.un * int328B conv.ovf.u.un * int648C box <Type> * o8D newarr <Type> int32 o8E ldlen o int328F ldelema <Type> int32,o &90 ldelem.i1 int32,o int3291 ldelem.u1 int32,o int3292 ldelem.i2 int32,o int3293 ldelem.u2 int32,o int3294 ldelem.i4 int32,o int3295 ldelem.u4 int32,o int3296 ldelem.i8,ldelem.u8 int32,o int6497 ldelem.i int32,o int3298 ldelem.r4 int32,o Float99 ldelem.r8 int32,o Float 9A ldelem.ref int32,o o/& 9B stelem.i int32,int32,o9C stelem.i1 int32,int32,o9D stelem.i2 int32,int32,o9E stelem.i4 int32,int32,o9F stelem.i8 int32,int32,oA0 stelem.r4 Float,int32,oAl stelem.r8 Flaot,int32,oA2 stelem.ref o/&,int32,oA3 ldelem,ldelem.any <Type> int32,o *A4 stelem,stelem.any <Type> o/&,int32,oA5 unbox.any <Type> o *B3 conv.ovf.i1 * int32 B4 conv.ovf.u1 * int32 B5 conv.ovf.i2 * int32 B6 conv.ovf.u2 * int32 B7 conv.ovf.i4 * int32 B8 conv.ovf.u4 * int32 B9 conv.ovf.i8 * int64 BA conv.ovf.u8 * int64 C2 refanyval <Type> * &C3 ckfinite * Float C6 mkrefany <Type> & &D0 ldtoken <Type>/<Field>&/<Method>D1 conv.u2 * int32 D2 conv.u1 * int32 D3 conv.i * int32 D4 conv.ovf.i * int32 D5 conv.ovf.u * int32 D6 add.ovf *,* *D7 add.ovf.un *,* *D8 mul.ovf *,* *D9 mul.ovf.un *.* * DA sub.ovf *,* * DB sub.ovf.un *,* * DC endfinally,endfaultDD leave int32DE leave.s int8DF stind.i int32,&E0 conv.u * int32 FE00 arglist * & FE01 ceq *,* int32 FE02 cgt *,* int32 FE03 cgt.un *,* int32 FE04 clt *,* int32 FE05 clt.un *,* int32 FE06 ldftn <Method> & FE07 ldvirtftn <Method> o & FE09 ldarg uint32 * FE0A ldarga uint32 & FE0B starg uint32 *FE0C ldloc uint32 *FE0D ldloca uint32 & FE0E stloc uint32 *FE0F localloc int32 & FE11 endfilter int32FE12 unaligned uint8FE13 volatile.FE14 tail.FE15 initobj <Type> &FE16 constrained. <Type>FE17 cpblk int32,&,&FE18 initblk int32,int32,&FE1A rethrowFE1C sizeof <Type> int32 FE1D refanytype * & FE1E readonly.。

热敏打印机指令集

热敏打印机指令集

热敏打印机指令集目录字符说明: (3)LF打印并走纸一行 (3)ESC SP n设定字符右边间隔 (3)ESC !n选择打印模式 (4)ESC $ nL nH设置绝对打印位置 (4)ESC * m nL nH d1......DK选择位图打印模式. (5)ESC - n打开/关闭下划线模式 (7)ESC 2设置标准行距命令 (7)ESC 3 n设置行距命令 (7)ESC @初始化打印机 (7)ESC E n打开/关闭加重模式 (8)ESC J n打印并走纸 (8)ESC V n打开/关闭顺时针旋转90°模式 (8)ESC a n选择排列方式 (9)ESC d n打印并走纸n行 (9)ESC { n打开/关闭颠倒打印模式 (9)ESC m半切纸(屏蔽) (10)ESC i全切纸(屏蔽) (10)ESC j n退纸n点行 (10)ESC \ nL nH设置相对打印位置 (11)ESC & y c1 c2[x1 d1...(y*x1)]...[xk d1...d(y*xk)] 定义用户自定义西文字符. (11)ESC ?n删除用户自定义西文 (12)ESC % n选择/取消使用用户自定义字符 (13)ESC v纸状态返回 (13)ESC p m n1 n2开钱箱 (13)GS FF走纸到黑标位置 (14)GS !n选择字符大小 (14)GS B n打开/关闭黑白相反打印模式 (15)GS L nL nH选择左边空白 (15)GS T n设打印位置到打印行起始 (16)①GS V m ②GS V m n选择切模式和切纸(屏蔽) (16)GS W nL nH设打印区域宽度 (17)GS v 0 nL nH xL xH yL Yh d1......dk打印光栅位图 (18)GS I n传送打印机ID (19)GS r n返回状态 (20)GS * x y d1...d(x*y*8) 自定义下载位图. (20)GS / m打印下载位图 (21)GS h n选择条码高度 (22)GS H n 选择可识别字符的打印位置 (22)GS w n 选择条码宽度 (23)①GS k m d1...dk②GS k m n d1...dn打印条码 (23)FS !n设置中文打印模式 (24)FS &设置中文字符模式 (24)FS - n打开/关闭下划线模式 (25)FS .撤销中文模式 (25)FS S n1 n2左边和右边的字符间隔 (25)FS W n打开/关闭字符四倍模式 (26)FS q n x y d1......dk下载位图到打印机.. (26)FS p n打印下载位图 (27)FS V n旋转打印命令 (27)FS 2 c1 c2 d1...dk定义用户自定义中文字符 (28)DLE EOT n返回实时状态 (28)DLE ENQ n实时请求打印机 (30)字符说明:打印机采用的中文字符为GB2312简体汉字表,西文字符编码采用ASCII码。

MSIL指令集详解

MSIL指令集详解

MSIL 指令集详解Base InstructionsInstruction Description Stack Transition1 add add two values, returning a new…, value1, value2→…, resultvalue2 add.ovf.<signed> add integer value with overflow…, value1, value2→…, resultcheck3 and bitwise AND …, valu e1, value2 →…, result4 arglist get argument list … →…, argListHandle5 beq.<length> branch on equal …, value1, value2 →…6 bge.<length> branch on greater than or equal to …, value1, value2 →…7 bge.un.<length> branch on greater/equal,…, value1, value2 →…unsigned or unordered8 bgt.<length> branch on greater than …, value1, value2 →…9 bgt.un<length> branch on greater than, unsigned…, value1, value2 →…or unordered10 ble.<length> branch on less than or equal to …, value1, value2 →…11 ble..un<length> branch on less/equal, unsigned or…, value1, value2 →…unordered12 blt.<length> branch on less than …, value1, value2 →…13 blt.un.<length> branch on less than, unsigned or…, value1, value2 →…unordered14 bne.un<length> branch on not equal or unorded …, value1, value2 →…15 br.<length> unconditional branch …, →…16 break breakpoint instruction …, →…17 brfalse.<length> branch on false, null, or zero …, value →…18 brtrue.<length> branch on non-false or non-null …, value →…19 call call a method …, arg1, arg2 … argn →…,retVal (not always returned) 20 calli indirect method call …, arg1, arg2 … argn, ftn →…,retVal (not always returned)21 ceq compare equal …, value1, value2→…, result22 cgt compare greater than …, value1, value2→…, result23 cgt.un compare greater than, unsigned…, value1, value2→…, resultor unordered24 ckfinite check for a finite real number …, value →…, value25 clt compare less than …, value1, value2→…, result26 clt.un compare less than, unsigned orunordered…, value1, value2→…, result27 conv.<to type> data conversion …, value →…, result28 conv.ovf<to type> data conversion with overflowdetection…, value →…, result29 conv.ovf.<totype>.un unsigned data conversion withoverflow detection…, value →…, result30 cpblk copy data from memory tomemory…, destaddr, srcaddr, size →…31 div divide values …, value1, value2→…, result32 div.un divide integer values, unsigned …, value1, value2→…, result33 dup duplicate the top value of thestack…, value →…, value, value34 endfilter end filter clause of SEH …, value →…35 endfinally end the finally or fault clause ofexception block… →…36 initblk initialize a block of memory to avalue…, addr, value, size →…37 jmp jump to method …→…38 ldarg.<length> load argument onto the stack … →…, value39 ldarga.<length> load an argument address …, →…, address of argumentnumber argNum40 ldc.<type> load numeric constant … →…, num41 ldftn load method pointer … →…, ftn42 ldind.<type> load value indirect onto the stack …, addr →…, value43 ldloc load local variable onto the stack … →…, value44 ldloca.<length> load local variable address … →…, address45 ldnull load a null pointer … →…, null value46 leave.<length> exit a protected region of code …, →47 localloc allocate space in the localdynamic memory poolsize → address48 mul multiply values …, value1, value2 →…, result49 mul.ovf<type> multiply integer values withoverflow check…, value1, value2 →…, result50 neg negate …, value →…, result51 nop no operation …, →…,52 not bitwise complement …, value →…, result53 or bitwise OR …, value1, value2 →…, result54 pop remove the top element of the…, value →…stack55 rem compute the remainder …, value1, valu e2 →…, result56 rem.un compute integer remainder,…, value1, value2 →…, resultunsigned57 ret return from method retVal on callee evaluationstack (not always present) →…, retVal on caller evaluationstack (not always present) 58 shl shift integer left …, value, shiftAmount →…,result59 shr shift integer right …, value, shiftAmount →…,result60 shr.un shift integer right, unsigned …, value, shiftAmount →…,result61 starg.<length> store a value in an argument slot …, value →…,62 stind.<type> store value indirect from stack …, addr, val →…63 stloc pop value from stack to local…, value →…variable64 sub substract numeric values …, value1, value2 →…, result65 sub.ovf.<type> substract integer values, checking…, value1, value2 →…, resultfor overflow66 switch table switch on value …, value →…,67 xor bitwise XOR ..., value1, value2 → ...,resultObject Model InstructionsInstruction Description Stack Transition 1 box convert value type to objectreference…, valueType →…, obj2 callvirt call a method associated, aruntime, with an object …, obj, arg1, … argN →…, returnVal (not always returned)3 cast class cast an object to a class …, obj →…, obj24 cpobj copy a value type …, destValObj, srcValObj →…,5 initobj Initialize a value type…,addrOfValObj →…,6 isinst test if an object is is an instanceof a class or interface…, obj →…, result7 ldelem.<type> load an element fo an array …,array, index →…, value8 ldelema load address of an element of anarray…, arr ay, index →…, address9 ldfld load field of an object …,obj →…, value10 ldflda load field address …,obj →…, address11 ldlen load the length of an array …, array →…, length12 ldobj copy value type to the stack …, addrOfValObj →…, valObj13 ldsfld load static field of a class …, →…, value14 ldsflda load static field address …, →…, address15 ldstr load a literal string …, →…, string16 ldtoken load the runtime representationof metadata token… →…, RuntimeHandle17 ldvirtfn load a virtual method pointer … object →…, ftn18 mkrefany push a typed reference on thestack…, ptr →…, typedRef19 newarr Create a zero-base,on-dimensional array…, numElems →…, array20 newobj create a new object …, arg1, … argN →…, obj21 refanytype load the type out of a typedreference…,TypedRef →…, type22 refanyval load the address out of a typedreference…,TypedRef →…, address23 rethrow rethrow the current exception …, →…,24 sizeof load the size in bytes of a valuetype …, →…, size (4 b ytes, unsigned)25 stelem.<type> store an element of an array …, array, index, value →…,26 stfld store into a field of an object …, obj, value →…,27 stobj store a value type from the stackinto memory…, addr, valObj →…,28 stsfld store a static field of class …, val →…,29 throw throw an exception …, object →…,30 unbox convert boxed value type to itsraw form。

C51汇编语言指令集

C51汇编语言指令集

51汇编语言指令集一、符号定义表符号含义Rn R0~R7寄存器n=0~7Direc t 直接地址,内部数据区的地址RAM(00H~7FH)SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0@Ri 间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH)#data 8位常数#data1616位常数Addr16 16位的目标地址Addr11 11位的目标地址Rel 相关地址bit 内部数据RAM(20H~2FH),特殊功能寄存器的直接地址的位二、指令介绍指令字节周期动作说明算数运算指令1.ADD A,Rn 1 1 将累加器与寄存器的内容相加,结果存回累加器2.ADD A,direct 2 1 将累加器与直接地址的内容相加,结果存回累加器3.ADD A,@Ri 1 1 将累加器与间接地址的内容相加,结果存回累加器4.ADD A,#data 2 1 将累加器与常数相加,结果存回累加器5.ADDC A,Rn 1 1 将累加器与寄存器的内容及进位C相加,结果存回累加器6.ADDC A,direct 2 1 将累加器与直接地址的内容及进位C相加,结果存回累加器7.ADDC A,@Ri 1 1 将累加器与间接地址的内容及进位C相加,结果存回累加器8.ADDC A,#data 2 1 将累加器与常数及进位C相加,结果存回累加器9.SUBB A,Rn 1 1 将累加器的值减去寄存器的值减借位C,结果存回累加器10.SUBB A,direct 2 1 将累加器的值减直接地址的值减借位C,结果存回累加器11.SUBBA,@Ri1 1 将累加器的值减间接地址的值减借位C,结果存回累加器12.SUBBA,0data2 1 将累加器的值减常数值减借位C,结果存回累加器13.INC A 1 1 将累加器的值加114.INC Rn 1 1 将寄存器的值加l15.INCdirect2 1 将直接地址的内容加116.INC@Ri1 1 将间接地址的内容加117.INCDPTR1 1 数据指针寄存器值加1说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位18.DEC A 1 1 将累加器的值减119.DEC Rn 1 1 将寄存器的值减120.DEC direct 2 1 将直接地址的内容减121.DEC@Ri1 1 将间接地址的内容减122.MUL AB 1 4 将累加器的值与B寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回B寄存器说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。

SSE4.1指令集系列之一

SSE4.1指令集系列之一

SSE4.1指令集系列之⼀本⽂要介绍的是SSE4.1指令集中的⼏条整数指令及其在视频编码中的应⽤。

1. 单指令32字节差分绝对值求和指令MPSADBW这条指令类似于SSE的PSADBW,但它实现的功能更强⼤。

包括微软官⽅⽹站上对这条指令的说明都不是能够让⼈⼀⽬了然。

下⾯这张图也许可以帮助我们理解:这条指令的灵活之处在于源操作数和⽬的操作数的位置都是可选的。

如何选择关键在于后⾯那个mask常量。

这个常量是⼀个⽴即数,但只⽤到了其中的低三位。

其中,最低2位,⽤于选择源操作数的连续4个字节的起始位置。

由于两位⼆进制有4中状态,所以源操作数的可选起始位置共有4种,具体见上图。

mask的第三位⽤于选择⽬的操作时连续11个字节的起始位置。

很显然,共有两个起始位置可供选择。

下⾯的c代码更清楚的描述了这条指令的功能。

1static __m128i compute_mpsadbw (unsigned char *v1, unsigned char *v2, int mask)2 {3 union4 {5 __m128i x;6 unsigned short s[8];7 } ret;8 unsigned char s[4];9int i, j;10int offs1, offs2;1112 offs2 = 4 * (mask & 3);13for (i = 0; i < 4; i++)14 s[i] = v2[offs2 + i];1516 offs1 = 4 * ((mask & 4) >> 2);17for (j = 0; j < 8; j++)18 {19 ret.s[j] = 0;20for (i = 0; i < 4; i++)21 ret.s[j] += abs (v1[offs1 + j + i] - s[i]);22 }2324return ret.x;25 }2. ⽔平⽅向上最⼩值查找指令PHMINPOSUW这条指令相对⽽⾔⽐较好理解,下⾯这张图很好的描述了这条指令的执⾏过程:3. 整数格式转换指令整数格式转换,例如,把⼀个8位的字节型变量转换为16位字变量,或者32位的双字变量等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
40us
1
0
数据读、写操作后,AC自动加一;画面不动。
0
1
数据读、写操作后,AC自动减一;画面平移。
0
0
数据读、写操作后,AC自动减一;画面不动。
4.显示开关控制
0
0
0
0
0
0
1
0
0
0
显示关,光标关,闪烁关。
40us
0
0
1
显示关,光标关,闪烁开。
0
1
0
显示关,光标开,闪烁关。
0
1
1
显示关,光标开,闪烁开。
高电平
读数据
LCD1602字符型液晶显示模块指令集
指令
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
功能
执行时间
1.清屏
0
0
0
0
0
0
0
0
0
1
清除DDRAM和AC值,光标复位。
2.归位
0
0
0
0
0
0
0
0
1
*
AC=0,光标复位、DDRAM内容不变。
3.输入方式设置
0
0
0
0
0
0
0
1
1
1
数据读、写操作后,AC自动加一;画面平移。
6.功能设置
0
0
0
0
1
0
0
0
*
*
四位数据接口,一行显示,5x7点阵
40us
0
0
1
*
*
四位数据接口,一行显示,5x10点阵
0
1
0
*
*
四位数据接口,两行显示,5x7点阵
0
1
1
*
*
四位数据接口,两行显示,5x10点阵
1
0
0
*
*
八位数据接口,一行显示,5x7点阵
1
0
1
*
*
八位数据接口,一行显示,5x10点阵
8
D1
8位双向数据线
9
D2
8位双向数据线
10
D3
8位双向数据线
11
D4
8位双向数据线
12
D5
8位双向数据线
13
D6
8位双向数据线
14
D7
8位双向数据线
15
BLA
背光电源正极
16
BLK
背光电源负极
LCD1602信号真值表
RS
R/W
E
功能
0
0
下降沿
写指令代码
0
1
高电平
读忙标志和AC值
1
0
下降沿
写数据
1
1
1
1
0
*
*
八位数据接口,两行显示,5x7点阵
1
1
1
*
*
八位数据接口,两行显示,5x10点阵
地址设置
0
0
0
1
A5
A4
A3
A2

A0
设置CGRAM地址。A5~A0=0~3FH
40us
地址设置
0
0
1
A6
A5
A4
A3
A2
A1
A0
设定下一个要存入数据的DDRAM的地址。
40us
9.读BF及AC值
0
1
BF
AC6
1
0
0
显示开,光标关,闪烁关。
1
0
1
显示开,光标关,闪烁开。
1
1
0
显示开,光标开,闪烁关。
1
1
1
显示开,光标开,闪烁开。
5.光标、画面位移
0
0
0
0
0
1
0
0
*
*
光标向左平移一个字符位,AC值减1。
40us
0
1
*
*
光标向右平移一个字符位,AC值加1。
1
0
*
*
画面向左平移一个字符位,但光标不动。
1
1
*
*
画面向右平移一个字符位,但光标不动。
LCD1602引脚说明
引脚编号
符号
引脚说明
1
VSS
接地
2
VDD
电源5v
3
VL
液晶显示偏压
4
RS
数据/命令选择。高电平时选择数据寄存器,低电平时选择指令寄存器。
5
R/W
读/写选择。高电平时进行读操作,低电平时进行写操作。
6
E
使能信号。当E端由高电平跳变成低电平时,液晶模块执行命令。
7
D0
8位双向数据线
AC5
AC4
AC3
AC2
AC1
AC0
BF=1:忙;BF=0:准备好。AC值意义为最近一次地址设置(CGRAM或DDRAM)定义。
40us
10.写数据
1
0
数据
数据写入DDRAM或CGRAM内。
40us
11.读数据
1
1
数据
读取DDRAM或CGRAM钟的内容。
40us
相关文档
最新文档