Irvine64链接库
Crlf 向控制台写一个行结束的序列
Random64 在0到 2 6 4 − 1 2^64-1 264−1内,生成一个64位的伪随机整数。用rax返回值
Randomize 随机种子
ReadInt64 从键盘读取一个64位有符号整数,用回车符结束。用rax返回
ReadString 从键盘读取一个字符串,用回车符结束。用rdx传递输入缓冲区偏移量;rcx传递最大字符数+1。用rax返回字符数
Str_compare 比较两个字符串 源串用rsi,目的串用rdi 设置零标志和进位标志
Str_copy 将一个源串复制到目的位置。源串用rsi,目的串用rdi
WriteInt64将rax中内容显示为64位有符号十进制数,并前置符号
WriteHex64将rax中内容显示为64位十六进制数
WriteHexB 将rax中内容显示为1,2,4,8字节的64位十六进制数,rbx传递显示的大小1,2,4,8
WriteString 显示一个空字节结束的ascii字符串。字符串的偏移量传递给rdx
Irvine64会保留rbx,rbp,rdi,rsi,r12,r13,r14,r15的值,rax,rcx,rdx,r8,r9,r10,r11不会保留
Microsoft x64 调用规范
- call指令将rsp寄存器-8
- 前四个参数依次放入rcx,rdx,r8,r9,其他放入堆栈中
- 调用者在运行时堆栈分配至少32字节的影子空间,调用过程中可以寄存器参数保存在这个区域中
- 在调用子程序时,rsp必须进行16字节边界对齐
添加Irvine64.obj