diff options
author | hpa <hpa> | 2002-04-26 22:43:29 +0000 |
---|---|---|
committer | hpa <hpa> | 2002-04-26 22:43:29 +0000 |
commit | 32f428c681e06add996b1b850a31a27abaadd23b (patch) | |
tree | 911d3e37ec4bd0bbc8bca7dd600fdc13b88ec212 /writehex.inc | |
parent | 2cc53253d89a526df7fa989a4c057cb74dce5b1e (diff) | |
download | syslinux-32f428c681e06add996b1b850a31a27abaadd23b.tar.gz |
Even more common code factoringsyslinux-1.73-pre2
Diffstat (limited to 'writehex.inc')
-rw-r--r-- | writehex.inc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/writehex.inc b/writehex.inc new file mode 100644 index 00000000..4fd91642 --- /dev/null +++ b/writehex.inc @@ -0,0 +1,54 @@ +;; $Id$ +;; ----------------------------------------------------------------------- +;; +;; Copyright 1994-2002 H. Peter Anvin - All Rights Reserved +;; +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, Inc., 53 Temple Place Ste 330, +;; Bostom MA 02111-1307, USA; either version 2 of the License, or +;; (at your option) any later version; incorporated herein by reference. +;; +;; ----------------------------------------------------------------------- + +;; +;; writehex.inc +;; +;; Write hexadecimal numbers to the console +;; + +; +; writehex[248]: Write a hex number in (AL, AX, EAX) to the console +; +writehex2: + pushfd + pushad + rol eax,24 + mov cx,2 + jmp short writehex_common +writehex4: + pushfd + pushad + rol eax,16 + mov cx,4 + jmp short writehex_common +writehex8: + pushfd + pushad + mov cx,8 +writehex_common: +.loop: rol eax,4 + push eax + and al,0Fh + cmp al,10 + jae .high +.low: add al,'0' + jmp short .ischar +.high: add al,'A'-10 +.ischar: call writechr + pop eax + loop .loop + popad + popfd + ret + |