Consolidated /docs into /pubs
This commit is contained in:
parent
9d356c582b
commit
71d117fa02
106 changed files with 350 additions and 317 deletions
51
pubs/x86/ops/SALC/README.md
Normal file
51
pubs/x86/ops/SALC/README.md
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
layout: page
|
||||
title: "x86 Instructions: SALC"
|
||||
permalink: /pubs/x86/ops/SALC/
|
||||
---
|
||||
|
||||
SALC (0xD6)
|
||||
---
|
||||
|
||||
### Description
|
||||
|
||||
Excerpt from [http://www.rcollins.org/secrets/opcodes/SALC.html](http://www.rcollins.org/secrets/opcodes/SALC.html):
|
||||
|
||||
An undocumented op code that performs an operation common to
|
||||
every Assembly language subroutine to C and many other higher
|
||||
level languages. This instruction is a C programmers 'dream'
|
||||
instruction for interfacing to assembly language.
|
||||
|
||||
Undocumented: Available to all Intel x86 processors
|
||||
Useful in production source code.
|
||||
SALC
|
||||
Flags: SET Carry flag to AL
|
||||
+-+-+-+-+-+-+-+-+-+ +----------+
|
||||
|O|D|I|T|S|Z|A|P|C| | 11010110 |
|
||||
+-+-+-+-+-+-+-+-+-+ +----------+
|
||||
| | | | | | | | | | | D6 |
|
||||
+-+-+-+-+-+-+-+-+-+ +----------+
|
||||
|
||||
The name SALC simply stands for SET the Carry flag in AL. This
|
||||
instruction is categorized as an undocumented single-byte proprietary
|
||||
instruction. Intel claims it can be emulated as a NOP. Hardly a NOP,
|
||||
this instruction sets AL=FF if the Carry Flag is set (CF=1), or resets
|
||||
AL=00 if the Carry Flag is clear (CF=0). It can best be emulated as
|
||||
SBB AL,AL. SALC doesn't change any flags, where SBB AL,AL does.
|
||||
|
||||
This instruction is most useful to high-level language programmers
|
||||
whose programs call assembly language, and expect AL to indicate success
|
||||
or failure. Since it is convenient for assembly language programs to
|
||||
return status in the CF, this instruction will convert that status to a
|
||||
form compatible with high level languages.
|
||||
|
||||
Over the years, this instruction has been given many names by various
|
||||
discoverers. I originally gave it the name SETCAL, but the most common
|
||||
name I've seen in print is SETALC. The name given above, SALC is an
|
||||
official Intel name.
|
||||
|
||||
While perusing the P6 opcode map, I always check for known, undocumented
|
||||
opcodes. After weeding through the map for many minutes, my patience and
|
||||
perseverance paid off. I found the opcode, and its name. Intel's name for
|
||||
this opcode is SALC. This would indicate that Intel plans to officially
|
||||
document this instruction, beginning with the P6.
|
||||
Loading…
Reference in a new issue