I am studying the Intel IA-32 Software Developer Guide. In particular, I am reading the following guide: http://www.intel.com/Assets/PDF/manual/253666.pdf . Take, for example, the ADD instruction. On page 79 it is written that you can add r8 (8-bit register) to r / m8 (8-bit register or memory location). A few lines below, it is also written that you can add r / m8 to r8. Question: if I add two 8-bit registers, what instruction do I use? Thanks.
The add command has several versions ... the same mnemonics can be encoded for different operation codes, depending on which operands you use. (and answer your specific question: the “add r8, r8” command probably has 2 different possible encodings that do the same)
The ADD instruction has 9 different encoding types, and two opcode are reserved for:
Opcode: 00/r = ADD r/m8, r8 Opcode: 02/r = ADD r8, r/m8
In case "ADD r8, r8" have some effect.
Source: https://habr.com/ru/post/1307323/More articles:Tracking IP address and country name (asp.net)? - asp.netHow to get BeautifulSoup to parse the contents of textarea tags as HTML? - pythonHow to display different AJAX update panels in one place in ASP.NET? - ajaxHow can I capture Java compiler errors in a file? - javaHow to compare two arrays of integers without regard to order - javaHow to get a class of an internal static class in another assembly? - reflectionIs there a way to make the eclipse message general "catch (Exception e)" as an error / warning (in java)? - javaPHP script to create the necessary calendar or a complete set of jquery - jqueryMac OS X 10.5+ and POSIX - posixHow to remove objects created by factory template - garbage-collectionAll Articles