EXTREME Overclocking Forums
Home | Reviews | Forums | Downloads | $ EXTREME Deals $ | RealTime Pricing | Free Magazines | Gear | Folding Stats Newsletter | Contact Us


Go Back   EXTREME Overclocking Forums > Software Discussion > Programming, DBMS, HTML, Web Related
Register Forum Rules FAQ Search Today's Posts Mark Forums Read

Welcome Guest Visitor! Please Register, It's Free and Fun To Participate!
The EXTREME Overclocking Forums are a place for people to learn how to overclock and tweak their PC's components like the CPU, memory (RAM), or video card in order to gain the maximum performance out of their system. There are lots of discussions about new processors, graphics cards, cooling products, power supplies, cases, and so much more!

You are currently viewing our boards as a "guest" which gives you limited access to view most discussions. You need to register before you can post: click the register link to proceed. Before you register, please read the forum rules. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload your own pictures, and access many other special features. Registration is fast, simple, and absolutely free! To start viewing messages, select the forum that you want to visit from the selection below.

After you have registered and read the forum rules, you can check out the FAQ for more information on using the forum. We hope you enjoy your stay here!

Note To Spammers: We do not allow unsolicited advertising! Spam is usually reported & deleted within minutes of it being posted, so don't waste your time (or ours)!


Please Register to Post a Reply
 
Thread Tools
Old 06-21-2012, 03:03 PM   #1
zlander79
Waldeinsamkeit
zlander79's Avatar
Senior Member
 
Posts: 745
Last Seen: 12-21-2012
iTrader: 0 / 0%
Assembly

I am really interested in seeing what all the SMID instructions available for today's CPUs can do for the types of things I work with. However, I need to walk before I run, what is a good starting point for learning assembly.
United States  Offline
    Register to Reply to This Post
Old 06-24-2012, 08:57 AM   #2
WordMasterRice
Caffeine Addict
WordMasterRice's Avatar
Senior Member
 
Posts: 1,469
Last Seen: Today
Age: 25
From: Henrietta, NY
iTrader: 8 / 100%
I'm rather surprised no one has posted in this thread. When I started in assembly I started with Motorola actually (on a 68000). Then I learned Atmel assembly (AVR). They were very similar, as most basic assembly languages are. I would recommend starting with the Atmel package. It isn't terribly difficult to learn and is definitely more up to date than the motorola pack.

As for what to actually do with it, assembly is something that takes quite a while to learn to do properly (IMO). Since the basic instructions are rather different from regular programming languages of today it requires an entirely different mindset to write programs. If you would like some actual exercises let me know and I can give you some of the material that I have.
United States  Offline
    Register to Reply to This Post
Old 06-24-2012, 12:49 PM   #3
zlander79
Waldeinsamkeit
zlander79's Avatar
Senior Member
 
Posts: 745
Last Seen: 12-21-2012
iTrader: 0 / 0%
I'm learining x86_64 with NASM right now. It really does require a different mindset, and it makes C feel like Python. I'm enjoying it so far. I'd love to see the material you have.

Here's one of the things I've written so far:
Code:
;**********************************************
; DIRECTIVES AND ECT
;**********************************************

[BITS 64]
DEFAULT REL


;**********************************************
; DATA SECTION
;**********************************************
         
          SECTION .data align=64
   
    msg:  db       "COUNTS FROM 0 TO 100"
    msg2: db       "ADDED! "
    len:      equ  $-msg
    len2:     equ  $-msg2
    a:    dq       0       ; start at
    b:    dq       1       ; increase by
    c:    dq       100     ; increase till
    lenv:     equ  $-c    ;length of value print
         

;**********************************************
; TEXT SECTION
;********************************************** 
         
          SECTION .text align=64
          global main

main:  
        mov    rdx, len  ;print welcome message
        mov    rcx, msg
        mov    rbx, 1
        mov    rax, 4
        int    0x80
                          
        jmp    whlp      ;call loop

whlp:
        mov    rdx, len2    ;print
        mov    rcx, msg2
        mov    rbx, 1
        mov    rax, 4
        int    0x80
        
        mov    rax, [a]   ;compare and exit if equal
        cmp    rax, [c]
        je     done
        mov    rax, [a]   ;add b to a
        mov    rbx, [b]
        add    rax, rbx
        mov    [a], rax
        jmp    whlp

done:
        mov    rbx, 0
        mov    rax, 1
        int    0x80
United States  Offline
    Register to Reply to This Post
Sponsored Links:
Please Register to Post a Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

All times are GMT -6. The time now is 09:32 PM.

Copyright ©2000 - 2011, Jelsoft Enterprises Ltd.
Powered by vBulletin
Copyright ©2000 - 2011, EXTREME Overclocking