KernelDebugRef - Unary Operators
Appearance
Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation
The following operators expect a single argument.
Ranges are an address and either a length or an end. 4544:0 L5 is address (4544:0) and a length of 5 objects. If you are dumping words, 5 words are dumped. #8:32 50 is a range of bytes from address 8:32 to and including 8:50.
Note: For <ranges>, if the second address has a unary operator such as . or #, then it must be separated by a comma from the first. Parentheses work as well, for example:
- db ds:40,%40000 Correct
- db ds:40 (%40000) Correct
- db ds:40 %40000 Incorrect
These results are caused by the way in which the expression evaluator parses the input.
- | Task number/address operator
- . Address type is segment:offset
- # Address type is selector:offset
- % Address type is linear
- %% Address type is physical
- - Two's complement
- ! Logical NOT operator
- NOT Bitwise one's complement
- SEG Returns the segment portion
- OFF Returns the offset portion
- BY 1-byte value from the address
- WO 2-byte value from the address
- DW 4-byte value from the address
- POI 4-byte address from the address
- PORT 1-byte value from an 8-bit I/O port
- WPORT 2-byte value from a 16-bit I/O port