用汇编获取系统开机的elapsed时间,制作随便数

来源:互联网 发布:知乎招商银行上分 编辑:程序博客网 时间:2024/06/05 19:18

;每运行一次可执行程序random.exe,即可显示任意两个
;16进制数的加法或减法表达式及其运算结果。在减法运算中,如果被减数小于减数,显示
;“Divide Overflow”的提示信息。

;printf 用\n 不能换行,不知道为什么,会原样输出\n 这两个字符

;GoAsm Random.asm
;GoLink/console Random.obj kernel32.dll msvcrt.dll
DATA SECTION
szText db 'TickCount is %d     ',0
TickCount dd 0
num1 dd 0
num2 dd 0
num3 dd 0
CODE SECTION
CLOSE:
add esp,28D
xor eax,eax
ret


START:
push -11d;esp+4
call GetTickCount
mov [TickCount],eax
mov [num1],al
mov [num2],ah
sub al,ah
mov [num3],al
INVOKE printf,ADDR szText,[TickCount];esp+8
INVOKE printf,'%x - %x = %x',[num1],[num2],[num3];+16
mov al,[num1]
mov ah,[num2]
cmp al,ah
jnc CLOSE
INVOKE printf,'     Divide Overflow'
add esp,4D
jmp CLOSE