📄 ops.c
字号:
/*#@(#)ops.c 4.1 Ultrix 7/17/90*//* Copyright (c) 1982 Regents of the University of California */static char sccsid[] = "@(#)ops.c 1.3 12/18/82";static char rcsid[] = "$Header: ops.c,v 1.3 84/03/27 10:22:43 linton Exp $";/* * Machine operators. */#include "defs.h"#include "ops.h"#ifndef publictypedef unsigned char VaxOpcode;#define O_HALT 0x00 /* halt */#define O_NOP 0x01 /* no operation */#define O_REI 0x02 /* return from exception or interrupt */#define O_BPT 0x03 /* break point fault */#define O_RET 0x04 /* return from called procedure */#define O_RSB 0x05 /* return from subroutine */#define O_LDPCTX 0x06 /* load process context */#define O_SVPCTX 0x07 /* save process context */#define O_CVTPS 0x08 /* convert packed to leading separate numeric */#define O_CVTSP 0x09 /* convert leading separate numeric to packed */#define O_INDEX 0x0A /* compute index */#define O_CRC 0x0B /* calculate cyclic redundancy check */#define O_PROBER 0x0C /* probe read access */#define O_PROBEW 0x0D /* probe write access */#define O_INSQUE 0x0E /* insert into queue */#define O_REMQUE 0x0F /* remove from queue */#define O_BSBB 0x10 /* branch to subroutine with byte disp */#define O_BRB 0x11 /* branch with byte disp */#define O_BNEQ 0x12 /* branch on not equal (also BNEQU) */#define O_BEQL 0x13 /* branch on equal (also BEQLU */#define O_BGTR 0x14 /* branch on greater */#define O_BLEQ 0x15 /* branch on less or equal */#define O_JSB 0x16 /* jump to subroutine */#define O_JMP 0x17 /* jump */#define O_BGEQ 0x18 /* branch on greater or equal */#define O_BLSS 0x19 /* branch on less */#define O_BGTRU 0x1A /* branch on greater unsigned */#define O_BLEQU 0x1B /* branch on less of equal unsigned */#define O_BVC 0x1C /* branch on overflow clear */#define O_BVS 0x1D /* branch on overflow set */#define O_BCC 0x1E /* branch on carry clear (also BGEQU) */#define O_BCS 0x1F /* branch on carry set (also BLSSU) */#define O_ADDP4 0x20 /* add packed 4 operand */#define O_ADDP6 0x21 /* add packed 6 operand */#define O_SUBP4 0x22 /* subtract packed 4 operand */#define O_SUBP6 0x23 /* subtract packed 6 operand */#define O_CVTPT 0x24 /* convert packed to trailing numeric */#define O_MULP 0x25 /* multiply packed */#define O_CVTTP 0x26 /* convert trailing numeric to packed */#define O_DIVP 0x27 /* divide packed */#define O_MOVC3 0x28 /* move character 3 operand */#define O_CMPC3 0x29 /* compare character 3 operand */#define O_SCANC 0x2A /* scan for character */#define O_SPANC 0x2B /* span characters */#define O_MOVC5 0x2C /* move character 5 operand */#define O_CMPC5 0x2D /* compare character 5 operand */#define O_MOVTC 0x2E /* move translated characters */#define O_MOVTUC 0x2F /* move translated until character */#define O_BSBW 0x30 /* branch to subroutine with word disp */#define O_BRW 0x31 /* branch with word disp */#define O_CVTWL 0x32 /* convert word to long */#define O_CVTWB 0x33 /* convert word to byte */#define O_MOVP 0x34 /* move packed */#define O_CMPP3 0x35 /* compare packed 3 operand */#define O_CVTPL 0x36 /* convert packed to long */#define O_CMPP4 0x37 /* compare packed 4 operand */#define O_EDITPC 0x38 /* edit packed to character */#define O_MATCHC 0x39 /* match characters */#define O_LOCC 0x3A /* locate characters */#define O_SKPC 0x3B /* skip character */#define O_MOVZWL 0x3C /* move zero-extended word to long */#define O_ACBW 0x3D /* add compare and branch word */#define O_MOVAW 0x3E /* move address of word */#define O_PUSHAW 0x3F /* push address of word */#define O_ADDF2 0x40 /* add floating 2 operand */#define O_ADDF3 0x41 /* add floating 3 operand */#define O_SUBF2 0x42 /* subtract floating 2 operand */#define O_SUBF3 0x43 /* subtract floating 3 operand */#define O_MULF2 0x44 /* multiply floating 2 operand */#define O_MULF3 0x45 /* multiply floating 3 operand */#define O_DIVF2 0x46 /* divide floating 2 operand */#define O_DIVF3 0x47 /* divide floating 3 operand */#define O_CVTFB 0x48 /* convert float to byte */#define O_CVTFW 0x49 /* convert float to word */#define O_CVTFL 0x4A /* convert float to long */#define O_CVTRFL 0x4B /* convert rounded float to long */#define O_CVTBF 0x4C /* convert byte to float */#define O_CVTWF 0x4D /* convert word to float */#define O_CVTLF 0x4E /* convert long to float */#define O_ACBF 0x4F /* add compare and branch floating */#define O_MOVF 0x50 /* move float */#define O_CMPF 0x51 /* compare floating */#define O_MNEGF 0x52 /* move negated floating */#define O_TSTF 0x53 /* test float */#define O_EMODF 0x54 /* extended modulus floating */#define O_POLYF 0x55 /* evaluate polynomial floating */#define O_CVTFD 0x56 /* convert float to double */#define O_DUMMY57 0x57 /* RESERVED to DIGITAL */#define O_ADAWI 0x58 /* add aligned word interlocked */#define O_DUMMY59 0x59 /* RESERVED to DIGITAL */#define O_DUMMY5a 0x5A /* RESERVED to DIGITAL */#define O_DUMMY5b 0x5B /* RESERVED to DIGITAL */#define O_INSQHI 0x5C /* insert into queue head, interlocked */#define O_INSQTI 0x5D /* insert into queue tail, interlocked */#define O_REMQHI 0x5E /* remove from queue head, interlocked */#define O_REMQTI 0x5F /* remove from queue tail, interlocked */#define O_ADDD2 0x60 /* add double 2 operand */#define O_ADDD3 0x61 /* add double 3 operand */#define O_SUBD2 0x62 /* subtract double 2 operand */#define O_SUBD3 0x63 /* subtrace double 3 operand */#define O_MULD2 0x64 /* multiply double 2 operand */#define O_MULD3 0x65 /* multiply double 3 operand */#define O_DIVD2 0x66 /* divide double 2 operand */#define O_DIVD3 0x67 /* divide double 3 operand */#define O_CVTDB 0x68 /* convert double to byte */#define O_CVTDW 0x69 /* convert double to word */#define O_CVTDL 0x6A /* convert double to long */#define O_CVTRDL 0x6B /* convert rounded double to long */#define O_CVTBD 0x6C /* convert byte to double */#define O_CVTWD 0x6D /* convert word to double */#define O_CVTLD 0x6E /* convert long to double */#define O_ACBD 0x6F /* add compare and branch double */#define O_MOVD 0x70 /* move double */#define O_CMPD 0x71 /* compare double */#define O_MNEGD 0x72 /* move negated double */#define O_TSTD 0x73 /* test double */#define O_EMODD 0x74 /* extended modulus double */#define O_POLYD 0x75 /* evaluate polynomial double */#define O_CVTDF 0x76 /* convert double to float */#define O_DUMMY77 0x77 /* RESERVED to DIGITAL */#define O_ASHL 0x78 /* arithmetic shift long */#define O_ASHQ 0x79 /* arithmetic shift quad */#define O_EMUL 0x7A /* extended multiply */#define O_EDIV 0x7B /* extended divide */#define O_CLRQ 0x7C /* clear quad (also CLRD) */#define O_MOVQ 0x7D /* move quad */#define O_MOVAQ 0x7E /* move address of quad (also MOVAD) */#define O_PUSHAQ 0x7F /* push address of quad (also PUSHAD) */#define O_ADDB2 0x80 /* add byte 2 operand */#define O_ADDB3 0x81 /* add byte 3 operand */#define O_SUBB2 0x82 /* subtract byte 2 operand */#define O_SUBB3 0x83 /* subtract byte 3 operand */#define O_MULB2 0x84 /* multiply byte 2 operand */#define O_MULB3 0x85 /* multiply byte 3 operand */#define O_DIVB2 0x86 /* divide byte 2 operand */#define O_DIVB3 0x87 /* divide byte 3 operand */#define O_BISB2 0x88 /* bit set byte 2 operand */#define O_BISB3 0x89 /* bit set byte 3 operand */#define O_BICB2 0x8A /* bit clear byte 2 operand */#define O_BICB3 0x8B /* bit clear byte 3 operand */#define O_XORB2 0x8C /* exclusive or byte 2 operand */#define O_XORB3 0x8D /* exclusive or byte 3 operand */#define O_MNEGB 0x8E /* move negated byte */#define O_CASEB 0x8F /* case byte */#define O_MOVB 0x90 /* move byte */#define O_CMPB 0x91 /* compare byte */#define O_MCOMB 0x92 /* move complemented byte */#define O_BITB 0x93 /* bit test byte */#define O_CLRB 0x94 /* clear byte */#define O_TSTB 0x95 /* test byte */#define O_INCB 0x96 /* increment byte */#define O_DECB 0x97 /* decrement byte */#define O_CVTBL 0x98 /* convert byte to long */#define O_CVTBW 0x99 /* convert byte to word */#define O_MOVZBL 0x9A /* move zero-extended byte to long */#define O_MOVZBW 0x9B /* move zero-extended byte to word */#define O_ROTL 0x9C /* rotate long */#define O_ACBB 0x9D /* add compare and branch byte */#define O_MOVAB 0x9E /* move address of byte */#define O_PUSHAB 0x9F /* push address of byte */#define O_ADDW2 0xA0 /* add word 2 operand */#define O_ADDW3 0xA1 /* add word 3 operand */#define O_SUBW2 0xA2 /* subtract word 2 operand */#define O_SUBW3 0xA3 /* subtract word 3 operand */#define O_MULW2 0xA4 /* multiply word 2 operand */#define O_MULW3 0xA5 /* multiply word 3 operand */#define O_DIVW2 0xA6 /* divide word 2 operand */#define O_DIVW3 0xA7 /* divide word 3 operand */#define O_BISW2 0xA8 /* bit set word 2 operand */#define O_BISW3 0xA9 /* bit set word 3 operand */#define O_BICW2 0xAA /* bit clear word 2 operand */#define O_BICW3 0xAB /* bit clear word 3 operand */#define O_XORW2 0xAC /* exclusive or word 2 operand */#define O_XORW3 0xAD /* exclusive or word 3 operand */#define O_MNEGW 0xAE /* move negated word */#define O_CASEW 0xAF /* case word */#define O_MOVW 0xB0 /* move word */#define O_CMPW 0xB1 /* compare word */#define O_MCOMW 0xB2 /* move complemented word */#define O_BITW 0xB3 /* bit test word */#define O_CLRW 0xB4 /* clear word */#define O_TSTW 0xB5 /* test word */#define O_INCW 0xB6 /* increment word */#define O_DECW 0xB7 /* decrement word */#define O_BISPSW 0xB8 /* bit set processor status word */#define O_BICPSW 0xB9 /* bit clear processor status word */#define O_POPR 0xBA /* pop register */#define O_PUSHR 0xBB /* push register */#define O_CHMK 0xBC /* change mode to kernel */#define O_CHME 0xBD /* change mode to executive */#define O_CHMS 0xBE /* change mode to supervisor */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -