文档详情

微机原理16位微处理器的指令系统.ppt

发布:2018-03-11约4万字共197页下载文档
文本预览下载声明
(3) 关系运算符 相等EQ、不等NE、小于LT、大于GT、 小于或等于LE、大于或等于GE。 参与关系运算的两个操作数可以是数据,或是同一段内的存储单元地址,而结果总是一个数值。 如果关系式不成立,则在汇编时,结果为0 如果关系式成立, 则在汇编时,结果为FFFFH 例:MOV BX,PORT LT 5 由于结果只有两个值,因此一般不单独使用,往往和逻辑运算符组合使用。 例:MOV BX,((PORT LT 5)AND 20)OR((PORT GE 5)AND 30) 当PORTX小于5时,当port大于或等于5时。 (4) 分析运算符和综合运算符 分析运算符可以把一个存储单元地址分解为段地址和偏移量。 综合运算符可以规定存储单元的类型。 分析运算符: OFFSET:取变量名或标号在段内的偏移量 SEG :取变量名或标号所在段的段值 TYPE :取变量名或标号的类型 SIZE :计算变量的字节总数(大小) LENGTH:计算变量的单元(可以是字节、字或双字)数目(长度) 例1: MOV DX,OFFSET DAI MOV AX,SEG ABC MOV DS,AX 例2:ABC DW 100 DUP(?)表示以ABC为变量名的存储区有100个字单元。相当于200个字节单元 TYPE ABC ;等于2 LENGTH ABC ;等于100 SIZE ABC ;等于200 综合运算符: PTR :只是用来对已分配的存储地址赋予另一种属性, 使该地址具有另一种类型。但它本身并不分配存储器。 格式:类型 PTR 表达式 功能:PTR用来对存储单元规定类型,通常和伪指令BYTE,WORD 等配合使用 类型:BYTE WORD DWORD NEAR FAR 前三个是表示变量的类型 后两个为表示标号的类型 表达式:可以是变量名,标号或其它地址表达式 例:MOV BYTE PTR [1000],0 MOV WORD PTR [1000],0 JMP NEAR PTR MULT1 JMP FAR PTR MULT2 PTR也用来更改规定了类型的存储单元的类型。 PTR也用来更改规定了类型的存储单元的类型。 例 2: XYZ DW 10 DUP(?) MOV BYTE PTR XYZ,AL 【注】XYZ仅在该语句作为字节变量使用,XYZ原来定义的字变量类型并没有修改。 PP EQU BYTE PTR XYZ;把XYZ标号对应的存储单元规 定为字节类型。 QQ EQU BYTE PTR XYZ+1; KK EQU DWORD PTR XYZ+2;从XYZ+2开始的4个单元规 定为一个双字类型的单元。 THIS :用来改变存储区的类型 例: XYZ_1 EQU THIS BYTE XYZ DW ? 则存储区XYZ既可以作为字节类型使用,也可以作为字类型使用。 标号XYZ_1和XYZ具有相同的段地址和偏移量, 如用标号XYZ,则存储单元作为字类型, 如用标号XYZ_1,则存储单元作为字节类型。 上面2个语句等同于: XYZ DW ? XYZ_1 EQU BYTE PTR XYZ 段间直接调用指令 格式: CALL DST 执行的操作:(SP)←(SP)-2;  ((SP)+1,(SP))←(CS);  (SP)←(SP)-2;  ((SP)+1,(SP))←(IP);  (IP)←偏移地址(指令的第2,3个字节);  (CS)←段地址(指令的第4,5个字节)。 CALL 2500H:3600H ;段间直接调用,段地址 和偏移量由指令给出 CALL FAR PTR PMOVE;PMOVE过程名,或语句标号 段间间接调用指令 格式: CALL DST 执行的操作:(SP)←(SP)-2; ((SP)+1,(SP))←(CS); (SP)←(SP)-2; ((SP)+1,(SP))←(IP); (IP)←(EA); (CS)←(EA+2) CALL DWORD PTR
显示全部
相似文档