Objective c 用手臂装配生成随机数

Objective c 用手臂装配生成随机数,objective-c,arm,random,inline-assembly,Objective C,Arm,Random,Inline Assembly,我想通过在我的Objective-C代码中内联一些程序集来生成随机数,以便在我的iphone项目中使用它,这在arm程序集中可能吗?在google上查找lfsr,线性反馈移位寄存器。虽然不是真正的随机数生成器,但您可以使用三行或四行汇编程序生成相当好的随机数。Jost从未初始化的内存地址加载变量。每次访问时,递增地址以获得新的随机数。瞧,保证随机,但不是均匀分布。去维基百科,找到最简单的随机数生成算法,在汇编中重新实现:)stdlib生成器有什么问题?不需要在那里进行汇编。是的,但练习的目的只是

我想通过在我的Objective-C代码中内联一些程序集来生成随机数,以便在我的iphone项目中使用它,这在arm程序集中可能吗?

在google上查找lfsr,线性反馈移位寄存器。虽然不是真正的随机数生成器,但您可以使用三行或四行汇编程序生成相当好的随机数。

Jost从未初始化的内存地址加载变量。每次访问时,递增地址以获得新的随机数。瞧,保证随机,但不是均匀分布。

去维基百科,找到最简单的随机数生成算法,在汇编中重新实现:)

stdlib生成器有什么问题?不需要在那里进行汇编。是的,但练习的目的只是在arm汇编中进行。您想从头开始在汇编中编写随机数生成器吗,还是,因为我认为这将是一条漫长而艰难的道路。是否需要生成器每次调用都返回新的随机数?如果没有,只需掷骰子,然后写MOV Rx。保证随机。而且,最终会使程序崩溃(如果不是立即)。你知道,ARM上有内存保护。如果你留在应用程序的内存中,你不会有问题。仍然不能保证,你可能会遇到未分配的地址或只执行、不读取的页面。或者是一个网页。你能再解释一下吗?我是一名组装学习者,对此非常陌生。已经谢谢了。这是16位x86汇编,不是ARM。如果你想的话,同样简单的PRNG(带有固定起始种子的LCG)也可以在ARM上实现。。。
; ========================= RANDOM.INC =========================
; Call with,    NOTHING

; Returns,  AL = random number between 0-255,
;       AX may be a random number too ?
;       DW RNDNUM holds AX=random_number_in AL
SEED    DW 3749h
RNDNUM  DW 0
align 16
RANDOM:
PUSH    DX
MOV AX,[SEED]   ;; AX = seed
MOV DX,8405h    ;; DX = 8405h
MUL DX      ;; MUL (8405h * SEED) into dword DX:AX
;
CMP AX,[SEED]
JNZ GOTSEED     ;; if new SEED = old SEED, alter SEED
MOV AH,DL
INC AX
GOTSEED:
MOV WORD [SEED],AX  ;; We have a new seed, so store it
MOV AX,DX       ;; AL = random number
MOV WORD [RNDNUM],AX
POP DX
RET