Assembly
1
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.
2
Name:
Anonymous
2011-04-25 15:59
PUSH 5
PUSH -12
PUSH 0x1234
PUSH EAX
PUSH DWORD [ESI]
What's so complicated about that?
3
Name:
Anonymous
2011-04-25 16:05
>>2
u mena
push 5
push -12
push 0x1234
push eax
push dword [esi]
4
Name:
Anonymous
2011-04-25 16:13
>>1
Read the Intel manuals.
5
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?
6
Name:
Anonymous
2011-04-25 16:29
>>5
OP has provided no example messages
7
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?
8
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
9
Name:
Anonymous
2011-04-25 16:45
>>8
following code
I don't see any code, code goes in [code] tags
!
10
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
11
Name:
>>10
2011-04-25 17:45
make that eax*4
12
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
13
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
14
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 .
15
Name:
Anonymous
2011-04-25 18:39
>>14
Real men define their own
zero macro.
16
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
17
Name:
Anonymous
2011-04-25 19:15
18
Name:
Anonymous
2011-04-25 20:29
>>16
What are you using for output,
``faggot'' ?
19
Name:
Anonymous
2011-04-25 20:54
>>16
So where do you get the string from?
Why push it onto the stack at all?
20
Name:
Anonymous
2011-04-26 8:03
21
Name:
Anonymous
2011-04-26 8:04
22
Name:
Anonymous
2011-04-26 8:13
23
Name:
Anonymous
2011-04-26 8:18
24
Name:
Anonymous
2011-04-26 8:23
25
Name:
Anonymous
2011-04-26 8:28
26
Name:
Anonymous
2011-04-26 8:34
27
Name:
Anonymous
2011-04-26 8:39
28
Name:
Anonymous
2011-04-26 8:44
29
Name:
Anonymous
2011-04-26 8:49
30
Name:
Anonymous
2011-04-26 8:55
31
Name:
Anonymous
2011-04-26 9:00
32
Name:
Anonymous
2011-04-26 9:05
33
Name:
Anonymous
2011-04-26 9:11
34
Name:
Anonymous
2011-04-26 9:16
35
Name:
Anonymous
2011-04-26 9:21
36
Name:
Anonymous
2011-04-26 9:26
37
Name:
Anonymous
2011-04-26 9:32
38
Name:
Anonymous
2011-04-26 9:37
39
Name:
Anonymous
2011-04-26 9:42
40
Name:
Anonymous
2011-04-26 9:47
41
Name:
Anonymous
2011-04-26 9:53
42
Name:
Anonymous
2011-04-26 9:58
43
Name:
Anonymous
2011-04-26 10:04
44
Name:
Anonymous
2011-04-26 10:09
45
Name:
Anonymous
2011-04-26 10:14
46
Name:
Anonymous
2011-04-26 10:27
47
Name:
Anonymous
2011-04-26 10:31
48
Name:
Anonymous
2011-04-26 10:36
49
Name:
Anonymous
2011-04-26 10:41
50
Name:
Anonymous
2011-04-26 10:45
51
Name:
Anonymous
2011-04-26 10:50
52
Name:
Anonymous
2011-04-26 10:55
53
Name:
Anonymous
2011-04-26 10:59
54
Name:
Anonymous
2011-04-26 11:04
55
Name:
Anonymous
2011-04-26 11:09
56
Name:
Anonymous
2011-04-26 11:14
57
Name:
Anonymous
2011-04-26 11:18
58
Name:
Anonymous
2011-04-26 11:23
59
Name:
Anonymous
2011-04-26 11:28
60
Name:
Anonymous
2011-04-26 11:32
61
Name:
Anonymous
2011-04-26 11:37
62
Name:
Anonymous
2011-04-26 11:42
63
Name:
Anonymous
2011-04-26 11:46
64
Name:
Anonymous
2011-04-26 11:51
65
Name:
Anonymous
2011-04-26 11:56
66
Name:
Anonymous
2011-04-26 12:01
67
Name:
Anonymous
2011-04-26 12:06
68
Name:
Anonymous
2011-04-26 12:10
69
Name:
Anonymous
2011-04-26 12:15
70
Name:
Anonymous
2011-04-26 12:20
71
Name:
Anonymous
2011-04-26 12:24
72
Name:
Anonymous
2011-04-26 12:29
73
Name:
Anonymous
2011-04-26 12:34
74
Name:
Anonymous
2011-04-26 12:39
75
Name:
Anonymous
2011-04-26 12:43
76
Name:
Anonymous
2011-04-26 12:48
77
Name:
Anonymous
2011-04-26 12:53
78
Name:
Anonymous
2011-04-26 12:57
79
Name:
Anonymous
2011-04-26 13:02
80
Name:
Anonymous
2011-04-26 13:07
81
Name:
Anonymous
2011-04-26 13:11
82
Name:
Anonymous
2011-04-26 13:16
83
Name:
Anonymous
2011-04-26 13:21
84
Name:
Anonymous
2011-04-26 13:26
85
Name:
Anonymous
2011-04-26 13:30
86
Name:
Anonymous
2011-04-26 13:35
87
Name:
Anonymous
2011-04-26 13:40
88
Name:
Anonymous
2011-04-26 13:45
89
Name:
Anonymous
2011-04-26 13:49
90
Name:
Anonymous
2011-04-26 13:54
91
Name:
Anonymous
2011-04-26 13:59
92
Name:
Anonymous
2011-04-26 14:03
93
Name:
Anonymous
2011-04-26 14:08
94
Name:
Anonymous
2011-04-26 14:13
95
Name:
Anonymous
2011-04-26 14:18
96
Name:
Anonymous
2011-04-26 14:22
97
Name:
Anonymous
2011-04-26 14:27
98
Name:
Anonymous
2011-04-26 14:32
99
Name:
Anonymous
2011-04-26 14:37
100
Name:
Anonymous
2011-04-26 14:41
101
Name:
Anonymous
2011-04-26 14:46
102
Name:
Anonymous
2011-04-26 14:51
103
Name:
Anonymous
2011-04-26 14:56
104
Name:
Anonymous
2011-04-26 15:01
105
Name:
Anonymous
2011-04-26 15:05
106
Name:
Anonymous
2011-04-26 15:10
107
Name:
Anonymous
2011-04-26 15:15
108
Name:
Anonymous
2011-04-26 15:24
109
Name:
Anonymous
2011-04-26 15:29
110
Name:
Anonymous
2011-04-26 15:34
111
Name:
Anonymous
2011-04-26 15:38
112
Name:
Anonymous
2011-04-26 15:43
113
Name:
Anonymous
2011-04-26 15:48
114
Name:
Anonymous
2011-04-26 15:53
115
Name:
Anonymous
2011-04-26 15:57
116
Name:
Anonymous
2011-04-26 16:02
117
Name:
Anonymous
2011-04-26 16:07
118
Name:
Anonymous
2011-04-26 16:11
119
Name:
Anonymous
2011-04-26 16:16
120
Name:
Anonymous
2011-04-26 16:21
121
Name:
Anonymous
2011-04-26 16:26
122
Name:
Anonymous
2011-04-26 16:31
123
Name:
Anonymous
2011-04-26 16:35
124
Name:
Anonymous
2011-04-26 16:40
125
Name:
Anonymous
2011-04-26 16:45
126
Name:
Anonymous
2011-04-26 16:50
127
Name:
Anonymous
2011-04-26 16:55
128
Name:
Anonymous
2011-04-26 16:59
129
Name:
Anonymous
2011-04-26 17:04
130
Name:
Anonymous
2011-04-26 17:09
131
Name:
Anonymous
2011-04-26 17:14
132
Name:
Anonymous
2011-04-26 17:18
133
Name:
Anonymous
2011-04-26 17:23
134
Name:
Anonymous
2011-04-26 17:33
135
Name:
Anonymous
2011-04-26 19:04
136
Name:
Anonymous
2011-04-26 19:08
137
Name:
Anonymous
2011-04-26 19:12
138
Name:
Anonymous
2011-04-26 19:17
139
Name:
Anonymous
2011-04-26 19:21
140
Name:
Anonymous
2011-04-26 19:35
141
Name:
Anonymous
2011-04-26 19:39
142
Name:
Anonymous
2011-04-26 19:45
143
Name:
Anonymous
2011-04-26 19:49
144
Name:
Anonymous
2011-04-26 19:54
145
Name:
Anonymous
2011-04-26 19:58
146
Name:
Anonymous
2011-04-26 20:02
147
Name:
Anonymous
2011-04-26 20:12
148
Name:
Anonymous
2011-04-26 20:17
149
Name:
Anonymous
2011-04-26 20:21
150
Name:
Anonymous
2011-04-26 20:25
151
Name:
Anonymous
2011-04-26 20:30
152
Name:
Anonymous
2011-04-26 21:35
153
Name:
Anonymous
2011-04-26 21:39
154
Name:
Anonymous
2011-04-26 22:02
155
Name:
Anonymous
2011-04-26 22:45
156
Name:
Anonymous
2011-04-26 23:29
157
Name:
Anonymous
2011-04-26 23:40
158
Name:
Anonymous
2011-04-27 0:04
159
Name:
Anonymous
2011-04-27 0:58
160
Name:
Anonymous
2011-04-27 1:37
161
Name:
Anonymous
2011-04-27 1:49
162
Name:
Anonymous
2011-04-27 2:01
163
Name:
Anonymous
2011-04-27 2:06
164
Name:
Anonymous
2011-04-27 2:10
165
Name:
Anonymous
2011-04-27 2:14
166
Name:
Anonymous
2011-04-27 3:09
167
Name:
Anonymous
2011-04-27 3:14
168
Name:
Anonymous
2011-04-27 3:19
169
Name:
Anonymous
2011-04-27 3:31
170
Name:
Anonymous
2011-04-27 3:36
171
Name:
Anonymous
2011-04-27 3:40
172
Name:
Anonymous
2011-04-27 3:45
173
Name:
Anonymous
2011-04-27 3:48
174
Name:
Anonymous
2012-11-22 19:31
I stretch my legs into the sky
175
Name:
Anonymous
2012-11-22 19:36
And masturbate to the figure of the Sussman!
176
Name:
Anonymous
2012-11-24 10:18
>>174,175 that's nice but...
177
Name:
Anonymous
2012-11-24 10:18
Check out my sick doubles.
178
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
179
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.
180
Name:
Anonymous
2012-11-24 15:10
>>177
You should go to a doctor.
181
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''.
>>10
dword ptr
MASM is pig disgusting.