Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-8081-120121-160161-

Assembly

Name: Anonymous 2011-04-25 15:40

Hey /prog/, I am learning Pentium Assembly on linux, using nasm assembler. I've been having trouble with the stack operations. Could somebody explain how I can simply push 4 integers(hex/dec) onto the stack, and then later pop them off? I get some really weird messages when I try to do this.

Thanks a lot.

Name: Anonymous 2011-04-25 15:59


PUSH 5
PUSH -12
PUSH 0x1234
PUSH EAX
PUSH DWORD [ESI]


What's so complicated about that?

Name: Anonymous 2011-04-25 16:05

>>2

u mena


push 5
push -12
push 0x1234
push eax
push dword [esi]

Name: Anonymous 2011-04-25 16:13

>>1
Read the Intel manuals.

Name: Anonymous 2011-04-25 16:22

>>2-4 What the hell are you talking about? What part of getting really weird messages when trying to do this do you not understand?

Name: Anonymous 2011-04-25 16:29

>>5
OP has provided no example messages

Name: Anonymous 2011-04-25 16:37

>>5
What part of read the Intel manuals because giving no code at all nor any of those weird error messages make you look like a retarded newbie just like that noko in the sage field do you not understand?

Name: Anonymous 2011-04-25 16:44

; following code will output "Lisp sucks"

mov rdx, mypenis
mov rcx, 9001
call setSize

call doesLispSuck
test rax, rax
jnz lisp_sucks
mov rdx, NOT_SUX_TEXT
call puts
ret
lisp_sux:
mov rdx, SUX_TEXT
call puts
ret

Name: Anonymous 2011-04-25 16:45

>>8
following code
I don't see any code, code goes in [code] tags!

Name: Anonymous 2011-04-25 17:44

>>8
You suck at asm and have obviously not read your SICP to be hating on Lisp.
Here's how to write it:

.code
start:
call DoYouFail
push dword ptr [eax+pFailures]
call puts ; using fast printf is left to the user (see: http://dis.4chan.org/read/prog/1279520490/3 )
ret

; valid return value: 0 or 1
DoYouFail:
xor eax,eax
inc eax
ret

.data
szFail db 'FAIL',0
szRule db 'RULE',0

pFailures dd offset szRule
          dd offset szFail

Name: >>10 2011-04-25 17:45

make that eax*4

Name: >>10 2011-04-25 17:49

Another possibility:

.code
start:
mov edx, offset szRule
mov esi, offset szFail
call DoYouFail
cmovnz edx, esi
push edx
call puts
ret

DoYouFail:
xor eax,eax
inc eax
ret

.data
szFail db 'FAIL',0
szRule db 'RULE',0

Name: Anonymous 2011-04-25 18:12

>>12
That should be _start, and you can't just ret from it.


section .code
_start: mov edx, hnHungarianNotationConsideredHarmful
        mov esi, hnHungarianNotationConsideredBeneficial
        call failp
        cmovz edx, esi
        push edx
        call puts
        syscall1 1,0 ; macro left as an exercise for the reader

failp:  xor eax, eax
        inc eax
        ret

section .data
hnHungarianNotationConsideredHarmful: db 'FAIL',0
hnHungarianNotationConsideredBeneficial: db 'FAIL ANYWAY',0

Name: Anonymous 2011-04-25 18:21

Setting a register to zero by xoring it with itself has been slower since probably the Pentium Pro. Similarly, swapping the values of two registers is faster using an additional temporary register, even if you have to save its value on the stack.

Name: Anonymous 2011-04-25 18:39

>>14
Real men define their own zero macro.

Name: OP 2011-04-25 18:59

Hmm, I ended up figuring it out, thanks guys. Right now I'm trying to use the stack to convert from hex to decimal. Let's say I have the hex value: 2B3A. I first take each character, starting from the left, and push it on the stack. So if I had 2B3A, I would end up with this:

ESP -> 10
3
11
2

I'm trying to figure a good way to convert this to decimal

Name: Anonymous 2011-04-25 19:15

Name: Anonymous 2011-04-25 20:29

>>16
What are you using for output, ``faggot''?

Name: Anonymous 2011-04-25 20:54

>>16

So where do you get the string from?

Why push it onto the stack at all?

Name: Anonymous 2011-04-26 8:03

Name: Anonymous 2011-04-26 8:04

Name: Anonymous 2011-04-26 8:13

Name: Anonymous 2011-04-26 8:18

Name: Anonymous 2011-04-26 8:23

Name: Anonymous 2011-04-26 8:28

Name: Anonymous 2011-04-26 8:34

Name: Anonymous 2011-04-26 8:39

Name: Anonymous 2011-04-26 8:44

Name: Anonymous 2011-04-26 8:49

Name: Anonymous 2011-04-26 8:55

Name: Anonymous 2011-04-26 9:00

Name: Anonymous 2011-04-26 9:05

Name: Anonymous 2011-04-26 9:11

Name: Anonymous 2011-04-26 9:16

Name: Anonymous 2011-04-26 9:21

Name: Anonymous 2011-04-26 9:26

Name: Anonymous 2011-04-26 9:32

Name: Anonymous 2011-04-26 9:37

Name: Anonymous 2011-04-26 9:42

Name: Anonymous 2011-04-26 9:47

Name: Anonymous 2011-04-26 9:53

Name: Anonymous 2011-04-26 9:58

Name: Anonymous 2011-04-26 10:04

Name: Anonymous 2011-04-26 10:09

Name: Anonymous 2011-04-26 10:14

Name: Anonymous 2011-04-26 10:27

Name: Anonymous 2011-04-26 10:31

Name: Anonymous 2011-04-26 10:36

Name: Anonymous 2011-04-26 10:41

Name: Anonymous 2011-04-26 10:45

Name: Anonymous 2011-04-26 10:50

Name: Anonymous 2011-04-26 10:55

Name: Anonymous 2011-04-26 10:59

Name: Anonymous 2011-04-26 11:04

Name: Anonymous 2011-04-26 11:09

Name: Anonymous 2011-04-26 11:14

Name: Anonymous 2011-04-26 11:18

Name: Anonymous 2011-04-26 11:23

Name: Anonymous 2011-04-26 11:28

Name: Anonymous 2011-04-26 11:32

Name: Anonymous 2011-04-26 11:37

Name: Anonymous 2011-04-26 11:42

Name: Anonymous 2011-04-26 11:46

Name: Anonymous 2011-04-26 11:51

Name: Anonymous 2011-04-26 11:56

Name: Anonymous 2011-04-26 12:01

Name: Anonymous 2011-04-26 12:06

Name: Anonymous 2011-04-26 12:10

Name: Anonymous 2011-04-26 12:15

Name: Anonymous 2011-04-26 12:20

Name: Anonymous 2011-04-26 12:24

Name: Anonymous 2011-04-26 12:29

Name: Anonymous 2011-04-26 12:34

Name: Anonymous 2011-04-26 12:39

Name: Anonymous 2011-04-26 12:43

Name: Anonymous 2011-04-26 12:48

Name: Anonymous 2011-04-26 12:53

Name: Anonymous 2011-04-26 12:57

Name: Anonymous 2011-04-26 13:02

Name: Anonymous 2011-04-26 13:07

Name: Anonymous 2011-04-26 13:11

Name: Anonymous 2011-04-26 13:16

Name: Anonymous 2011-04-26 13:21

Name: Anonymous 2011-04-26 13:26

Name: Anonymous 2011-04-26 13:30

Name: Anonymous 2011-04-26 13:35

Name: Anonymous 2011-04-26 13:40

Name: Anonymous 2011-04-26 13:45

Name: Anonymous 2011-04-26 13:49

Name: Anonymous 2011-04-26 13:54

Name: Anonymous 2011-04-26 13:59

Name: Anonymous 2011-04-26 14:03

Name: Anonymous 2011-04-26 14:08

Name: Anonymous 2011-04-26 14:13

Name: Anonymous 2011-04-26 14:18

Name: Anonymous 2011-04-26 14:22

Name: Anonymous 2011-04-26 14:27

Name: Anonymous 2011-04-26 14:32

Name: Anonymous 2011-04-26 14:37

Name: Anonymous 2011-04-26 14:41

Name: Anonymous 2011-04-26 14:46

Name: Anonymous 2011-04-26 14:51

Name: Anonymous 2011-04-26 14:56

Name: Anonymous 2011-04-26 15:01

Name: Anonymous 2011-04-26 15:05

Name: Anonymous 2011-04-26 15:10

Name: Anonymous 2011-04-26 15:15

Name: Anonymous 2011-04-26 15:24

Name: Anonymous 2011-04-26 15:29

Name: Anonymous 2011-04-26 15:34

Name: Anonymous 2011-04-26 15:38

Name: Anonymous 2011-04-26 15:43

Name: Anonymous 2011-04-26 15:48

Name: Anonymous 2011-04-26 15:53

Name: Anonymous 2011-04-26 15:57

Name: Anonymous 2011-04-26 16:02

Name: Anonymous 2011-04-26 16:07

Name: Anonymous 2011-04-26 16:11

Name: Anonymous 2011-04-26 16:16

Name: Anonymous 2011-04-26 16:21

Name: Anonymous 2011-04-26 16:26

Name: Anonymous 2011-04-26 16:31

Name: Anonymous 2011-04-26 16:35

Name: Anonymous 2011-04-26 16:40

Name: Anonymous 2011-04-26 16:45

Name: Anonymous 2011-04-26 16:50

Name: Anonymous 2011-04-26 16:55

Name: Anonymous 2011-04-26 16:59

Name: Anonymous 2011-04-26 17:04

Name: Anonymous 2011-04-26 17:09

Name: Anonymous 2011-04-26 17:14

Name: Anonymous 2011-04-26 17:18

Name: Anonymous 2011-04-26 17:23

Name: Anonymous 2011-04-26 17:33

Name: Anonymous 2011-04-26 19:04

Name: Anonymous 2011-04-26 19:08

Name: Anonymous 2011-04-26 19:12

Name: Anonymous 2011-04-26 19:17

Name: Anonymous 2011-04-26 19:21

Name: Anonymous 2011-04-26 19:35

Name: Anonymous 2011-04-26 19:39

Name: Anonymous 2011-04-26 19:45

Name: Anonymous 2011-04-26 19:49

Name: Anonymous 2011-04-26 19:54

Name: Anonymous 2011-04-26 19:58

Name: Anonymous 2011-04-26 20:02

Name: Anonymous 2011-04-26 20:12

Name: Anonymous 2011-04-26 20:17

Name: Anonymous 2011-04-26 20:21

Name: Anonymous 2011-04-26 20:25

Name: Anonymous 2011-04-26 20:30

Name: Anonymous 2011-04-26 21:35

Name: Anonymous 2011-04-26 21:39

Name: Anonymous 2011-04-26 22:02

Name: Anonymous 2011-04-26 22:45

Name: Anonymous 2011-04-26 23:29

Name: Anonymous 2011-04-26 23:40

Name: Anonymous 2011-04-27 0:04

Name: Anonymous 2011-04-27 0:58

Name: Anonymous 2011-04-27 1:37

Name: Anonymous 2011-04-27 1:49

Name: Anonymous 2011-04-27 2:01

Name: Anonymous 2011-04-27 2:06

Name: Anonymous 2011-04-27 2:10

Name: Anonymous 2011-04-27 2:14

Name: Anonymous 2011-04-27 3:09

Name: Anonymous 2011-04-27 3:14

Name: Anonymous 2011-04-27 3:19

Name: Anonymous 2011-04-27 3:31

Name: Anonymous 2011-04-27 3:36

Name: Anonymous 2011-04-27 3:40

Name: Anonymous 2011-04-27 3:45

Name: Anonymous 2011-04-27 3:48

Name: Anonymous 2012-11-22 19:31

I stretch my legs into the sky

Name: Anonymous 2012-11-22 19:36

And masturbate to the figure of the Sussman!

Name: Anonymous 2012-11-24 10:18

>>174,175 that's nice but...

Name: Anonymous 2012-11-24 10:18

Check out my sick doubles.

Name: Anonymous 2012-11-24 10:49


mov asm, into_a_fucking_museum
jmp use_ruby_faggots


this code tells you losers to use ruby


asm is for neckbeards and people who used to write programs in 1970


FAGG0TZZZZZZZZ

Name: Anonymous 2012-11-24 11:09

>>178
I don't mind if some Ruby troll replaces the Javashit troll. At least Ruby is genuinely funny, Javashit is just... shit.

Name: Anonymous 2012-11-24 15:10

>>177
You should go to a doctor.

Name: Anonymous 2012-11-24 20:00

>>178

mov asm, into_a_fucking_museum

In non-faggot syntax, you're putting ``into_a_fucking_museum'' into ``asm''.

Name: Anon posts in ancient threads 2012-11-24 20:48

>>10
dword ptr

MASM is pig disgusting.

Don't change these.
Name: Email:
Entire Thread Thread List