kinda stuck... Tuesday, 23-Feb-99 11:58:51 kinda stuck here... :017f xor al,ah :0181 and ah,01 -> ax is now 011a for me :0186 div bl -> divide accumulator by bl for me this is 011a/4e (4e was mov'ed into bl earlier) :0188 movsx si,ah ->move with sign extended src to dest...si is now 0030 for me :018b add si, 010b :018f mov [065c], si -> [065c] now 3b01 :0193 mov bx,0660 -> T.abcfw location :0196 mov si,01b1 -> si points to index table... :0199 mov di,0100 -> destination index :019c lodsb -> x'fers string element addressed by ds:si to accumulator... *** here is the xlat loop **** jmp's back here from :01af :019d cmp al, 00 -> check for zero terminator :019f jz 01d0 -> jmp if zero :01a1 mov cl,al -> cl now equals 0b :01a3 and ax, 00f0 -> * why? * :01a6 shr al, 04 -> * why? * :01a9 xlat -> replaces byte in al with byte from a user table addressed by Bx...the original value of al is the index into the translate table (BX=0660...this is the T.abcfw string...AL is now '54' or 'T'... :01aa and cl, 0f -> * why? * cx remains 000b :01ad repz stosb -> repeats execution of string instruction while cx!=0...Cx is decremented after each operation...stosb store string byte in accumulator to location di, di is incremented by sizeof(operand)... :01af jmp 019c -> back to top of loop... ***** this puts a lot of 'T' 's into memory starting at location :0100 then kicks me out with the same old "bad file error"... I'm kinda stuck again...any advice on what direction to take now? snakebyte__ |
snakebyte's thread (snakebyte__@hotmail.com) (20-Feb-99 09:08:43) |