![]() |
![]() |
|||
|
||||
|
|||||||
| 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 |
|
|
#1 | ||||
|
Waldeinsamkeit
Senior Member
|
Assembly
|
||||
|
|
|
|
#2 | ||||
|
Caffeine Addict
Senior Member
|
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. |
||||
|
|
|
|
#3 | ||||
|
Waldeinsamkeit
Senior Member
|
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
|
||||
|
|
|
|
| Please Register to Post a Reply |
| Thread Tools | |
|
|