lkml.org 
[lkml]   [2003]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Searching for string problems
On Wed, 23 Apr 2003 22:48:35 +0300 Andrew Kirilenko <icedank@gmx.net> wrote:

| Hello!
|
| Big thanks to all of you. Now I'm starting to understand how it's working.
| Here is current version of my code:
|
| -->
| jmp cl_start
| cl_id_str: .string "STRING"
| cl_start:
| cld
| movw %cs, %ax
| movw %ax, %ds
| movw $0xe000, %ax
| movw %ax, %es
| movb $0, %al
| xor %bx, %bx # start of segment
| cl_compare:
| movw $cl_id_str, %si
| movw $cl_start, %cx
| subw %si, %cx
| decw %cx
| movw %bx, %di
| repz cmpsb
| je cl_compare_done_good
| incw %bx
| cmpw $0xffff, %bx # are we at the end of segment
| je cl_compare_done
| jmp cl_compare
| cl_compare_done_good:
| movb $1, %al
| cl_compare_done:

# here the code needs to do something like this,
# to check the second 64 KB block of memory:
movw %es, %bx
cmpw %bx, $0xe000
je all_done
movw $0xf000, %bx
movw %bx, %es
xor %bx, %bx
jmp cl_compare


| <--
|
| And this code won't work as well :(

Do you understand x86 real-mode segment registers?
They can only address a "segment" of 64 KB (roughly).

| Unfortunately, I can't start DOS and check, cause there is no video and
| keyboard controller on that PC.

oh yes.

--
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:34    [W:1.010 / U:0.076 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site