
每个Pushdata操作码都通过脚本中数据项的值来确定要压入堆栈的数据项的长度。
操作码1-75(0x01 – 0x4B)
操作码1-75只是将数据字节量的数值压入堆栈。
举例:
0x08 <8字节数据项> :将8个字节的数据项留在堆栈上。
0x20 <32字节数据项>:将32个字节的数据项留在堆栈上。
OP_PUSHDATA1(76或0x4C)
OP_PUSHDATA1将接下来的1个字节读取为要压入堆栈的字节数。它可以将长度为1至255字节的数据项压入堆栈,但是,它通常仅用于大小超过 75 字节的数据项。
举例:
0x4C 0x64 <100 字节数据项>:将100字节的数据项留在堆栈上。
0x4C 0xFF <255 字节数据项> :将255字节的数据项留在堆栈上。
OP_PUSHDATA2(77或0x4D)
OP_PUSHDATA2将接下来的2个字节读取为要压入堆栈的字节数。它可以将长度为256到65,535字节的数据项压入堆栈。
举例:
0x4D 0x0100 <256字节数据项> :将256字节的数据项留在堆栈上。
0x4D 0xFFFF <65,535字节数据项> :将65,535字节的数据项留在堆栈上。
OP_PUSHDATA4(78或0x4E)
OP_PUSHDATA4将接下来的4个字节读取为要压入堆栈的字节数。它可以将长度为65,536至4,294,967,295字节的数据项压入堆栈。
举例:
0x4E 0x00010000 <65,536字节数据项>:将65,536字节的数据项留在堆栈中。
0x4E 0xFFFFFFFF <4,294,967,295字节数据项>:将4,294,967,295字节的数据项留在堆栈中。
OP_PUSHDATA4 是比特币脚本中最大的Pushdata操作码,它将脚本中单个数据项的大小限制为4,294,967,295B。一旦数据项在堆栈上存在,就可以使用OP_CAT操作码将它们连接在一起,从而验证文件哈希,或实现其它目的。