Does anyone know a good assembler textbook ?

  • Thread starter Klizja
  • Start date
  • Tags
    Textbook
  • #1
9
0
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 :)
 
Last edited:

Answers and Replies

  • #2


There is no one assembler - each processor has its own set of instructions, so you have to be more specific.
 
  • #3


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.
 
  • #4


Do a search on "assembler textbook". I got a lot of hits, including some books that are published online.
 
  • #5


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
 
  • #6


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.
 
Last edited:
  • #7


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.
 

Suggested for: Does anyone know a good assembler textbook ?

Replies
21
Views
2K
Replies
1
Views
326
Replies
0
Views
306
Replies
17
Views
841
Replies
10
Views
873
Replies
2
Views
518
Back
Top