Autor
|
Tema: Operator+ Original. ¿Cómo? (Leído 7,772 veces)
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Mi pregunta es más que nada por curiosidad. El operador "+" de enteros por ejemplo, ¿cómo está definido de raiz? ¿O es una función ya a bajo nivel? Por ejemplo, el operador * podría ser un bucle for, sumando "a" veces "b". ¿Pero el "+"?
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Es una función propia del lenguaje. Tu piensa que al final el código fuente que tu escribes se acaba transformando en instrucciones máquina... y cualquier procesador de ordenador tiene instrucciones para ( por ejemplo ) sumar y restar números con signo y sin signo.
Esto quiere decir que no se requiere implementar una función para que sume dos números enteros porque es una funcionalidad que ya viene implementada a más bajo nivel.
|
|
|
En línea
|
|
|
|
engel lex
|
en realidad tambien me da curiosidad y me gustaria saber exactamente... cuando sumo 2 numeros enteros, la operacion de ensamblador se resume a una sola instruccion de suma a bajo nivel? o hace más que eso?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
pues más o menos sería así int result = num1 + num2;
mov ax, num1 mov bx, num2 add ax, bx mov result, ax
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
La explicación al por qué de las 4 instrucciones es la siguiente:
Dependiendo de la arquitectura del procesador, no todas las instrucciones pueden acceder a la memoria.
un ejemplo es el caso de las instrucciones de suma, resta, ... Estas instrucciones únicamente pueden operar con los registros del procesador y con valores constantes. Es necesario, por tanto, mover las dos variables a registros del procesador para poder realizar la suma.
La instrucción de suma almacena en ax el resultado de la suma, por lo que después es necesario mover dicho resultado a la variable donde queremos almacenarlo.
|
|
|
En línea
|
|
|
|
Danyfirex
Desconectado
Mensajes: 493
My Dear Mizuho
|
Puedes hacer una multiplicación la compilas y la ves en ollydbg.
saludos
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
mm Danyfirex, buena idea jaja.
Gracias Eferion. Pensaba que sería un poco a más alto nivel el operator +.
¿Y el operator *? ¿Es a bajo nivel, o un conjunto de operators +?
|
|
|
En línea
|
|
|
|
|
Oblivi0n
Desconectado
Mensajes: 392
Odio las ranas.
|
A bajo nivel, la suma la realiza la ALU, aquí tienes el circuíto que la realizaría (lo han complicao un poco xD)
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Mm oblivion, no me he parado mucho en el circuito jeje pero gracias por la respuesta tan detallada xD Pero yo me refería más a nivel software, no hardware jaja Pero gracias igual (Que tiempos de hacer circuitos en electronica, y luego hacerlos en el minecraft jaja)
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
COMO SE GRABA UN DVD ORIGINAL
Multimedia
|
dvd1975
|
3
|
3,208
|
4 Julio 2004, 04:06 am
por Songoku
|
|
|
Como cambiar datos que vuelven al original con CE
Ingeniería Inversa
|
Tatan Ignacio
|
1
|
1,755
|
5 Mayo 2015, 03:17 am
por engel lex
|
|
|
como identifico y se que un control de playstation 4 es original?
Juegos y Consolas
|
DJKENSHIN
|
0
|
2,589
|
29 Mayo 2022, 20:59 pm
por DJKENSHIN
|
|
|
Red Team Operator - Malware Development Advanced Vol.1
Tutoriales - Documentación
|
ehn@
|
0
|
1,613
|
13 Octubre 2023, 20:26 pm
por ehn@
|
|
|
RED TEAM Operator: Windows Persistence
Tutoriales - Documentación
|
ehn@
|
0
|
1,008
|
30 Noviembre 2023, 12:40 pm
por ehn@
|
|