Knowledge (XXG)

Opcode

Source 📝

374: 858:; Bakos, Jason D.; Colwell, Robert P.; Bhattacharjee, Abhishek; Conte, Thomas M.; Duato, José; Franklin, Diana; Goldberg, David; Jouppi, Norman P.; Li, Sheng; Muralimanohar, Naveen; Peterson, Gregory D.; Pinkston, Timothy M.; Ranganathan, Parthasarathy; Wood, David A.; Young, Cliff; Zaky, Amr (2017-11-23). 341:
and other representations intended for a software interpreter rather than a hardware device. These software-based instruction sets often employ slightly higher-level data types and operations than most hardware counterparts, but are nevertheless constructed along similar lines. Examples include the
513: 553: 822: 1011: 1117: 477: 786: 750: 187:
that specifies the operation to be performed. Beside the opcode itself, most instructions also specify the data they will process, in the form of
646: 498: 135: 321:, which are typically easier for humans to understand and write. These languages need to be compiled (translated into assembly language) by a 914: 640: 387: 871: 317:. This enhances the readability while still giving precise control over the machine instructions. Most programming is currently done using 235:
operands, or none at all. There are instruction sets with nearly uniform fields for opcode and operand specifiers, as well as others (the
593: 1110: 925: 444: 239:
architecture for instance) with a more complicated, variable-length structure. Instruction sets can be extended through the use of
1060: 931: 318: 1158: 672: 306: 184: 706: 538: 227:
detailing all possible opcodes. Apart from the opcode itself, an instruction normally also has one or more specifiers for
1103: 359: 216: 192: 49: 990: 918: 910: 436: 379: 355: 568:
Each operation that the processor can perform is identified by a unique binary number known as an instruction code.
863: 128: 223:
or a more specialized processing unit. Opcodes for a given instruction set can be described through the use of an
1214: 800: 473: 428: 92: 1313: 1183: 1143: 1021: 1308: 220: 764: 728: 702: 1339: 1232: 1173: 810: 121: 769: 733: 243:
which add a subset of new instructions made up of existing opcodes following reserved byte sequences.
397: 347: 1208: 506:
MCS-4 Assembly Language Programming Manual - The INTELLEC 4 Microcomputer System Programming Manual
240: 109: 1303: 1076: 952: 607: 256: 104: 1220: 1138: 1056: 921: 877: 867: 855: 814: 778: 742: 636: 549: 509: 450: 440: 310: 298: 288: 272: 597: 322: 215:
Specifications and format of the opcodes are laid out in the instruction set architecture (
1298: 1226: 1153: 1088: 1052: 424: 402: 343: 276: 200: 97: 1288: 1271: 1266: 1256: 1191: 1168: 906: 392: 59: 1333: 1276: 1202: 805: 774: 738: 896: 611: 17: 1163: 1148: 314: 224: 181: 64: 35: 668: 1046: 694: 630: 626: 231:(i.e. data) on which the operation should act, although some operations may have 1016: 373: 1261: 1251: 900: 369: 284: 260: 87: 881: 818: 782: 746: 1281: 351: 338: 204: 149: 982: 326: 602: 581: 635:. Gliwice, Poland: Jacek Skalmierski Computer Studio. pp. 80–83 . 632:
Application of CLP to instruction modulo scheduling for VLIW processors
228: 188: 71: 1095: 264: 292: 1196: 454: 291:, and program control, as well as special instructions (such as 1099: 539:"The Functions Of A Computer: Instruction Register And Decoder" 1318: 268: 236: 196: 801:"Finding Binary Clones with Opstrings & Function Digests" 765:"Finding Binary Clones with Opstrings & Function Digests" 729:"Finding Binary Clones with Opstrings & Function Digests" 275:), etc., specified and accessed using more or less complex 1048:
Write Great Code: Thinking Low-level, Writing High-level
219:) of the processor in question, which may be a general 199:, which are hardware devices, they can also be used in 960: 508:(Preliminary ed.). Santa Clara, California, USA: 419: 417: 1242: 1182: 1131: 512:. December 1973. pp. B-1–B-8. MCS-030-1273-1. 435:. Computer Monographs (3 ed.). New York, USA: 427:(1978) . "2.1. Symbolic instructions". Written at 849: 847: 845: 843: 841: 839: 1051:. Vol. 1. San Francisco, California, USA: 909:(1 ed.). Greensboro, North Carolina, USA: 474:"Javassist, a Java-bytecode translator toolkit" 431:, Southampton, UK. In Floretin, J. John (ed.). 860:Computer architecture: A quantitative approach 1111: 862:(6 ed.). Cambridge, Massachusetts, USA: 129: 8: 467: 465: 671:. School of Computing, Clemson University. 1118: 1104: 1096: 1020:. PC Magazine Encyclopedia. Archived from 329:, or run through other compiled programs. 136: 122: 31: 601: 537:Raphael, Howard A., ed. (November 1974). 854:Hennessy, John L.; Patterson, David A.; 699:Computer Architecture On-Line Collection 546:MCS-40 User's Manual For Logic Designers 499:"Appendix B - Instruction Machine Codes" 413: 337:Opcodes can also be found in so-called 313:instructions and operands to represent 79: 41: 34: 1084: 1074: 809:. Part III. Vol. 30, no. 9. 586:ACM SIGARCH Computer Architecture News 915:American Broadcasting Companies, Inc. 897:"Introduction: Why Machine Language?" 773:. Part II. Vol. 30, no. 8. 388:Gadget (machine instruction sequence) 191:. In addition to opcodes used in the 7: 737:. Part I. Vol. 30, no. 7. 983:"Introduction to Assembly Language" 594:Association for Computing Machinery 705:, Department of Computer Science. 346:which are then interpreted by the 25: 953:"Programming Language Popularity" 548:. Santa Clara, California, USA: 372: 319:high-level programming languages 993:from the original on 2020-03-02 934:from the original on 2008-02-13 825:from the original on 2020-03-02 799:Schulman, Andrew (2005-09-01). 789:from the original on 2020-03-02 763:Schulman, Andrew (2005-08-01). 753:from the original on 2020-03-02 727:Schulman, Andrew (2005-07-01). 709:from the original on 2020-03-02 675:from the original on 2016-05-28 649:from the original on 2020-03-02 580:Jones, Douglas W. (June 1988). 559:from the original on 2020-03-03 519:from the original on 2020-03-01 480:from the original on 2020-03-02 251:Depending on architecture, the 1159:Low-level programming language 902:Machine Language For Beginners 307:low-level programming language 1: 350:(JVM), the byte code used in 193:instruction set architectures 27:Part of a machine instruction 959:. 2013-10-25. Archived from 669:"Multiple Instruction Issue" 360:Common Intermediate Language 919:Small System Services, Inc. 911:COMPUTE! Publications, Inc. 895:Mansfield, Richard (1983). 693:Jones, Douglas W. (2016) . 437:Elsevier North-Holland Inc. 380:Computer programming portal 201:abstract computing machines 1356: 864:Morgan Kaufmann Publishers 667:Smotherman, Mark (2016) . 1215:Microsoft Macro Assembler 981:Swanson, William (2001). 625:Domagała, Łukasz (2012). 429:University of Southampton 333:Software instruction sets 271:ports (which may also be 1144:Comparison of assemblers 627:"7.1.4. Benchmark suite" 472:Chiba, Shigeru (2007) . 362:(CIL), and many others. 162:instruction machine code 1045:Hyde, Randall (2004). 703:The University of Iowa 433:Assemblers and Loaders 259:values, values in the 180:) is the portion of a 1233:Open Watcom Assembler 1174:x86 assembly language 1012:"bytecode Definition" 811:United Business Media 425:Barron, David William 1314:Instruction listings 987:Swanson Technologies 592:(3). New York, USA: 398:Syllable (computing) 348:Java Virtual Machine 170:instruction syllable 18:Instruction syllable 1309:Calling conventions 1209:High Level Assembly 1126:x86 assembly topics 603:10.1145/48675.48684 342:byte code found in 110:Execute instruction 1304:Processor register 1055:. p. passim. 813:. pp. 64–70. 777:. pp. 56–61. 770:Dr. Dobb's Journal 741:. pp. 69–73. 734:Dr. Dobb's Journal 701:. Iowa City, USA: 289:logical operations 174:instruction parcel 156:(abbreviated from 105:Repeat instruction 1327: 1326: 1221:Netwide Assembler 1139:Assembly language 642:978-83-62652-42-6 550:Intel Corporation 510:Intel Corporation 299:Assembly language 203:as part of their 146: 145: 16:(Redirected from 1347: 1120: 1113: 1106: 1097: 1092: 1086: 1082: 1080: 1072: 1070: 1069: 1033: 1032: 1030: 1029: 1008: 1002: 1001: 999: 998: 978: 972: 971: 969: 968: 949: 943: 942: 940: 939: 892: 886: 885: 873:978-0-12811905-1 851: 834: 833: 831: 830: 796: 795: 794: 760: 759: 758: 724: 718: 717: 715: 714: 695:"A Minimal CISC" 690: 684: 683: 681: 680: 664: 658: 657: 655: 654: 622: 616: 615: 605: 582:"A Minimal CISC" 577: 571: 570: 565: 564: 558: 552:. p. viii. 543: 534: 528: 527: 525: 524: 518: 503: 495: 489: 488: 486: 485: 469: 460: 458: 421: 382: 377: 376: 344:Java class files 287:, data copying, 277:addressing modes 207:specifications. 182:machine language 166:instruction code 160:, also known as 138: 131: 124: 42:General concepts 32: 21: 1355: 1354: 1350: 1349: 1348: 1346: 1345: 1344: 1330: 1329: 1328: 1323: 1299:Program counter 1244: 1238: 1227:Turbo Assembler 1178: 1154:Instruction set 1127: 1124: 1083: 1073: 1067: 1065: 1063: 1053:No Starch Press 1044: 1041: 1039:Further reading 1036: 1027: 1025: 1010: 1009: 1005: 996: 994: 980: 979: 975: 966: 964: 951: 950: 946: 937: 935: 928: 894: 893: 889: 874: 856:Asanović, Krste 853: 852: 837: 828: 826: 798: 792: 790: 762: 756: 754: 726: 725: 721: 712: 710: 692: 691: 687: 678: 676: 666: 665: 661: 652: 650: 643: 624: 623: 619: 579: 578: 574: 562: 560: 556: 541: 536: 535: 531: 522: 520: 516: 501: 497: 496: 492: 483: 481: 471: 470: 463: 459:(xii+100 pages) 447: 423: 422: 415: 411: 403:Fused operation 378: 371: 368: 335: 279:. The types of 249: 241:opcode prefixes 213: 142: 98:Indirect branch 50:Instruction set 28: 23: 22: 15: 12: 11: 5: 1353: 1351: 1343: 1342: 1332: 1331: 1325: 1324: 1322: 1321: 1316: 1311: 1306: 1301: 1296: 1291: 1289:Memory address 1286: 1285: 1284: 1279: 1274: 1272:Interrupt flag 1269: 1267:Direction flag 1264: 1254: 1248: 1246: 1240: 1239: 1237: 1236: 1230: 1224: 1218: 1212: 1206: 1200: 1197:Flat Assembler 1194: 1188: 1186: 1180: 1179: 1177: 1176: 1171: 1169:Microassembler 1166: 1161: 1156: 1151: 1146: 1141: 1135: 1133: 1129: 1128: 1125: 1123: 1122: 1115: 1108: 1100: 1094: 1093: 1061: 1040: 1037: 1035: 1034: 1003: 973: 944: 926: 907:Compute! Books 887: 872: 835: 719: 685: 659: 641: 617: 596:(ACM): 56–63. 572: 529: 490: 461: 445: 412: 410: 407: 406: 405: 400: 395: 393:Illegal opcode 390: 384: 383: 367: 364: 334: 331: 248: 245: 212: 209: 158:operation code 144: 143: 141: 140: 133: 126: 118: 115: 114: 113: 112: 107: 102: 101: 100: 90: 82: 81: 77: 76: 75: 74: 69: 68: 67: 62: 60:Illegal opcode 52: 44: 43: 39: 38: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1352: 1341: 1338: 1337: 1335: 1320: 1317: 1315: 1312: 1310: 1307: 1305: 1302: 1300: 1297: 1295: 1292: 1290: 1287: 1283: 1280: 1278: 1277:Overflow flag 1275: 1273: 1270: 1268: 1265: 1263: 1260: 1259: 1258: 1255: 1253: 1250: 1249: 1247: 1241: 1234: 1231: 1228: 1225: 1222: 1219: 1216: 1213: 1210: 1207: 1204: 1203:GNU Assembler 1201: 1198: 1195: 1193: 1190: 1189: 1187: 1185: 1181: 1175: 1172: 1170: 1167: 1165: 1162: 1160: 1157: 1155: 1152: 1150: 1147: 1145: 1142: 1140: 1137: 1136: 1134: 1130: 1121: 1116: 1114: 1109: 1107: 1102: 1101: 1098: 1090: 1078: 1064: 1058: 1054: 1050: 1049: 1043: 1042: 1038: 1024:on 2012-10-06 1023: 1019: 1018: 1013: 1007: 1004: 992: 988: 984: 977: 974: 963:on 2015-04-11 962: 958: 954: 948: 945: 933: 929: 927:0-942386-11-6 923: 920: 916: 912: 908: 904: 903: 898: 891: 888: 883: 879: 875: 869: 865: 861: 857: 850: 848: 846: 844: 842: 840: 836: 824: 820: 816: 812: 808: 807: 806:CMP Media LLC 802: 788: 784: 780: 776: 775:CMP Media LLC 772: 771: 766: 752: 748: 744: 740: 739:CMP Media LLC 736: 735: 730: 723: 720: 708: 704: 700: 696: 689: 686: 674: 670: 663: 660: 648: 644: 638: 634: 633: 628: 621: 618: 613: 609: 604: 599: 595: 591: 587: 583: 576: 573: 569: 555: 551: 547: 540: 533: 530: 515: 511: 507: 500: 494: 491: 479: 475: 468: 466: 462: 456: 452: 448: 446:0-444-19462-2 442: 438: 434: 430: 426: 420: 418: 414: 408: 404: 401: 399: 396: 394: 391: 389: 386: 385: 381: 375: 370: 365: 363: 361: 357: 354:for compiled 353: 349: 345: 340: 332: 330: 328: 324: 320: 316: 312: 309:, which uses 308: 304: 300: 296: 295:and others). 294: 290: 286: 282: 278: 274: 273:memory mapped 270: 266: 262: 258: 254: 246: 244: 242: 238: 234: 230: 226: 222: 218: 210: 208: 206: 202: 198: 194: 190: 186: 183: 179: 175: 171: 167: 163: 159: 155: 151: 139: 134: 132: 127: 125: 120: 119: 117: 116: 111: 108: 106: 103: 99: 96: 95: 94: 91: 89: 86: 85: 84: 83: 78: 73: 70: 66: 63: 61: 58: 57: 56: 53: 51: 48: 47: 46: 45: 40: 37: 33: 30: 19: 1340:Machine code 1293: 1164:Machine code 1149:Disassembler 1066:. Retrieved 1062:1-59327003-8 1047: 1026:. Retrieved 1022:the original 1015: 1006: 995:. Retrieved 986: 976: 965:. Retrieved 961:the original 956: 947: 936:. Retrieved 901: 890: 859: 827:. Retrieved 804: 791:. Retrieved 768: 755:. Retrieved 732: 722: 711:. Retrieved 698: 688: 677:. Retrieved 662: 651:. Retrieved 631: 620: 589: 585: 575: 567: 561:. Retrieved 545: 532: 521:. Retrieved 505: 493: 482:. Retrieved 432: 336: 315:machine code 302: 297: 280: 252: 250: 232: 225:opcode table 214: 177: 173: 169: 165: 161: 157: 153: 147: 80:Instructions 65:Opcode table 54: 36:Machine code 29: 1243:Programming 1085:|work= 1017:PC Magazine 957:langpop.com 439:p. 7. 358:code, .NET 195:of various 185:instruction 1262:Carry flag 1252:Call stack 1184:Assemblers 1068:2015-10-10 1028:2015-10-10 997:2015-10-10 967:2015-10-10 938:2016-05-28 829:2016-05-28 793:2016-05-28 757:2020-03-02 713:2016-05-28 679:2016-05-28 653:2016-05-28 563:2020-03-03 523:2020-03-02 484:2016-05-27 409:References 339:byte codes 325:-specific 301:, or just 285:arithmetic 281:operations 1319:Registers 1282:Zero flag 1087:ignored ( 1077:cite book 882:983459758 819:1044-789X 783:1044-789X 747:1044-789X 352:GNU Emacs 205:byte code 150:computing 1334:Category 1192:A86/A386 991:Archived 932:Archived 823:Archived 821:. #376. 787:Archived 785:. #375. 751:Archived 749:. #374. 707:Archived 673:Archived 647:Archived 612:17280173 554:Archived 514:Archived 478:Archived 455:78-19961 366:See also 327:compiler 311:mnemonic 303:assembly 283:include 267:values, 263:, other 257:register 253:operands 247:Operands 233:implicit 229:operands 211:Overview 189:operands 178:opstring 305:, is a 255:may be 72:Operand 1294:Opcode 1245:issues 1235:(WASM) 1229:(TASM) 1223:(NASM) 1217:(MASM) 1199:(FASM) 1132:Topics 1059:  924:  880:  870:  817:  781:  745:  639:  610:  453:  443:  323:system 265:memory 154:opcode 93:Branch 55:Opcode 1257:Flags 1211:(HLA) 1205:(GAS) 608:S2CID 557:(PDF) 542:(PDF) 517:(PDF) 502:(PDF) 293:CPUID 261:stack 152:, an 1089:help 1057:ISBN 922:ISBN 878:OCLC 868:ISBN 815:ISSN 779:ISSN 743:ISSN 637:ISBN 451:LCCN 441:ISBN 356:Lisp 197:CPUs 598:doi 269:I/O 237:x86 221:CPU 217:ISA 176:or 148:In 88:NOP 1336:: 1081:: 1079:}} 1075:{{ 1014:. 989:. 985:. 955:. 930:. 917:; 913:, 905:. 899:. 876:. 866:. 838:^ 803:. 797:; 767:. 761:; 731:. 697:. 645:. 629:. 606:. 590:16 588:. 584:. 566:. 544:. 504:. 476:. 464:^ 449:. 416:^ 172:, 168:, 164:, 1119:e 1112:t 1105:v 1091:) 1071:. 1031:. 1000:. 970:. 941:. 884:. 832:. 716:. 682:. 656:. 614:. 600:: 526:. 487:. 457:. 137:e 130:t 123:v 20:)

Index

Instruction syllable
Machine code
Instruction set
Opcode
Illegal opcode
Opcode table
Operand
NOP
Branch
Indirect branch
Repeat instruction
Execute instruction
v
t
e
computing
machine language
instruction
operands
instruction set architectures
CPUs
abstract computing machines
byte code
ISA
CPU
opcode table
operands
x86
opcode prefixes
register

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.