View Full Version : Does anyone know a good assembler textbook ?! :)
Hello , everyone :)
Could anyone suggest a good assembler textbook ? It would be nice , if it covered working with strings in detail , a tutorial about working with strings would also do nicely :)
Thank you in advance :)
P.S. Oh , and by the way , which assembler is the easiest to use if you are completely new to the area of assembler programming , however have some experience of coding in C and Pascal :)
There is no one assembler - each processor has its own set of instructions, so you have to be more specific.
If you are learning say assembler for the AMD/Intel architectures you might be better off just downloading the architecture specifications from the respective vendors website.
Do a search on "assembler textbook". I got a lot of hits, including some books that are published online.
davee123
May6-10, 01:19 PM
Granted, the last assembly I wrote was for an Analog Devices DSP, and before that 8086 assembly-- but ... strings? In assembly? Are there built-in handlers for string manipulation in assembly these days?
DaveE
Granted, the last assembly I wrote was for an Analog Devices DSP, and before that 8086 assembly-- but ... strings? In assembly? Are there built-in handlers for string manipulation in assembly these days?x86 has instructions for Pascal type strings. REP MOVSB will move a string of length CX bytes from DS:ESI to ES:ESI. REPNE SCASB searches a string of length CX bytes at ES:ESI for the first occurance of a match with AL. REPE CMPSB wll compare two strings of length CX bytes at DS:ESI and ES:EDI. EDI and ESI are register pointer names in 32 bit mode. In 64 bit mode, the register pointer names would be RDI and RSI, in 16 bit mode, just DI and SI.
x86 has instructions for Pascal type strings. REP MOVSB will move a string of length CX bytes from DS:ESI to ES:ESI.
Correction: From Intel® 64 and IA-32 Architectures
Software Developer’s Manual, Volume 2B:
(For legacy mode) REP MOVSB moves a string of (E)CX bytes from address DS:(E)SI to ES:(E)DI. For 64-bit mode move byte from address (R|E)SI to (R|E)DI.
The SI, ESI, and RSI registers (16 bits, 32 bits, and 64 bits, respectively) are source index registers, hence their name. The DI, EDI, and RDI registers are destination index registers.
REPNE SCANSB searches a string of length CX bytes at ES:ESI for the first occurance of a match with AL.
The instruction names are SCASB, SCASW, and SCASD - no N in the name.
REPE CMPSB wll compare two strings of length CX bytes at DS:ESI and ES:EDI. EDI and ESI are register pointer names in 32 bit mode. In 64 bit mode, the register pointer names would be RDI and RSI, in 16 bit mode, just DI and SI.
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.