Humming Owl Posted June 9, 2024 Posted June 9, 2024 Hello! I've been wanting to learn some assembly programming and stumbled upon this book which some people mention it as a good introduction to 80x86 Assembly language. https://www.amazon.com/80X86-IBM-Compatible-Computers-Interfacing/dp/013061775X The book is old, and I know that its contents are not updated to the newer processors from nowadays but as it involves old stuff I would like to give it a try (seems fun ). To someone that knows about the book or about this subject the question I have is the following, which operating system do I use for DOS stuff? The book mentions the MASM assembler and there is some material on this website (archived by the Internet Archive) and mentions DOS (which is like an old Windows, I think ). https://web.archive.org/web/20090120232105/http://microdigitaled.com/x86/x86 Books.htm I really don't know about this very much but I would like to. I think that I might be able to get stuff emulated on my system so I could follow the book. Also, if you know about a good way (or several ways) to follow this book, let me know! Seems like a very interesting journey. Cheers. PD: I don't know if this thread is in the correct place but as it has to do with assembly programming I figured it would fit well this category.
Dixel Posted June 10, 2024 Posted June 10, 2024 11 hours ago, Humming Owl said: The book mentions the MASM assembler and there is some material on this website (archived by the Internet Archive) and mentions DOS (which is like an old Windows, I think ). Hi. For using MASM on your ordinary 64-bit Windows Vista, I suggest you familiarise yourself with DOSBOX and install it first. 3
user57 Posted November 23, 2024 Posted November 23, 2024 im not certain if he thinks assembly is dos programming, so i think we try to create a better view actually assembly not a dos language assembly is not a high language in a high language you have something like "for i=0 , i<10, i+1" in assembly that looks different you have to write that vars on your own , you have to write where that routine/loop starts and ends and how many times it repeat it assembly has a big advantage, its a lot faster but assembly is a lot more work to programm for example today are many "engines" and something like the sdt (C++ Standard Library) like std::array is also very script "ish" and engine "ish" those engines always load a certain engine, api , or certain codes - that sum together so the file is getting very big and slow (aka now some people might understand why win10 is not the fastest) assembly is still used today for example the XMM routines are written in the heic encoder https://msfn.org/board/topic/185879-winxp-hevcheifheic-image-encoderdecoder/ sure you can use normal commands , but just try to use a big jpg file (such as a 20 mb + one) and encode without assembly (aka hardware acceleration and no XMM registers) the encode time is 5-50 times as much but here is a good part of your question "the book is old" the good news in assembly there is not many of new stuff, like they do today with engines, api´s or the sdt there is only a few new stuff (that you can lern like instand if you know the "old ones") there is not much differens between x64 and 32 bit either , the registers are called with a R(64 bit) instead of a E (32 bit) - still doing the same job you can write assembly in the vs2019 or 2022 compiler (or the olders ones too) you just write __asm { // assembly code here } assembly = faster, smaller downsides = you need a lot! more time to code, a lot more of understanding is needed (like many math), less code you can copy paste like you certainly could use a engine/or something like that - but then you have to write the right assembly routine for it then one more thing is to know, every current compiler or language have to create a assembly code (because thats the only code the cpu actually can read) so a java, c or phyton code actually creates assembly code - that makes it hard to say its a language for dos back in the day you had other assembly commands too, by writing a emulator you can translate these old assembly commands to new compatible ones (thats what people sometimes still do) normal c++ found a good compromise in my opinion (the new c++ styles rather go into a script direction like java, phyton and others do)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now