MASM question

sluthy

Member
Sep 25, 2005
77
0
0
Hey, I need a little help with a particluar point in my MASM uni assignment (well, I actually need a lot of help, but one problem at a time) please.

I've got a BYTE array 20 bytes long which I'm using as a input string buffer, and it's going to recieve two numbers sepatared by a comma (i.e. 512,43 - it's a pixel reference on a screen).
I've also got two SDWORD variables that need those two numbers in them (xOrigin, yOrigin). How can I get this to properly divide the two into the SDWORD values? I could probably manage it in C++, but it's my first time with ASM.
 

itachi

Senior member
Aug 17, 2004
390
0
0
you need to convert it explicitly.

while buf(i) != ',' =>
accumulator *= 10
accumulator += buf(i)
end-while
num = accumulator

when you allocate the 2 dword vars, their addresses will be 4 apart.. so you can increment the dest address by 4, if it's over, break out.. otherwise convert another.
 

sluthy

Member
Sep 25, 2005
77
0
0
Okay, cool, got that problem out - but now I have tw more urgent problems (assignment's due in about 6 hours):

1. I just realised I need to be using Real-address mode, so instead of using 'make32' I need to use 'make16'. But when I do that, I get:


C:\Masm615\LIB\Irvine16.lib(D:\Kip\AsmBook4\Examples\Lib16\Irvine16.asm) : fatal error L1123: _TEXT : segment defined both 16- and 32- bit

...help!

2. How do you get the square root of a number? I know add, sub, mul, imul etc., how do I find the hypotenuse of a Pythagoras triangle?
 

sluthy

Member
Sep 25, 2005
77
0
0
Okay, never mind that first one, it was a line in my code, now it compiles, now when I run it I get garbage (under XP). How do I run it in MS-DOS?

Second question still applies though.
 

itachi

Senior member
Aug 17, 2004
390
0
0
only time you'd need to run it in real-mode is if you need to call bios functions.

to get the square root.. use x87 instructions.

(nasm syntax)
fild dword ptr[ num ]
fsqrt
fistp dword ptr[root]
; root = (int) sqrt(num)
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |