草庐IT

什么是DPTR寄存器

DPRT中文译名数据指针datapointer,是一个16位的特殊寄存器(至少在51中是16位).其设计初衷是用于跟外部ROM和外部RAM.寻址方式是间接寻址,一般搭配MOVX使用。一般用法:movxa,@dptr读取外部内存某一个地址(即dptr所存的值)的内容到Amovx@dptr,a将A的内容写入外部内存某一个地址(即dptr所存的值)DPTR作用作为数据指针来讲(正常一个经典8051只有一个DPTR)作用可以跟通用寄存器类比一下,一般都是用作间接寻址。(看下面例子)‘不同的是通用寄存器只能适用于内部RAM的读取和写入。DPTR是专门为16位(或者小于16位)的外部RAM或者外部ROM准

什么是DPTR寄存器

DPRT中文译名数据指针datapointer,是一个16位的特殊寄存器(至少在51中是16位).其设计初衷是用于跟外部ROM和外部RAM.寻址方式是间接寻址,一般搭配MOVX使用。一般用法:movxa,@dptr读取外部内存某一个地址(即dptr所存的值)的内容到Amovx@dptr,a将A的内容写入外部内存某一个地址(即dptr所存的值)DPTR作用作为数据指针来讲(正常一个经典8051只有一个DPTR)作用可以跟通用寄存器类比一下,一般都是用作间接寻址。(看下面例子)‘不同的是通用寄存器只能适用于内部RAM的读取和写入。DPTR是专门为16位(或者小于16位)的外部RAM或者外部ROM准

Python Web3 智能合约(Smart Contract)交互(例子与POAP合约交互)

环境Python3.8封装包依赖pipinstall--upgradepippipinstallweb3智能合约(SmartContract)智能合约(Solidity代码)是Web3建设的基础,是搭建去中心化生态的奠基。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。contractERC721{functionbalanceOf(address_owner)externalviewreturns(uint256);functionownerOf(uint256_tokenId)externalviewreturns(address);functionsafeTran

Python Web3 智能合约(Smart Contract)交互(例子与POAP合约交互)

环境Python3.8封装包依赖pipinstall--upgradepippipinstallweb3智能合约(SmartContract)智能合约(Solidity代码)是Web3建设的基础,是搭建去中心化生态的奠基。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。contractERC721{functionbalanceOf(address_owner)externalviewreturns(uint256);functionownerOf(uint256_tokenId)externalviewreturns(address);functionsafeTran

前端面试题JavaScript篇——2022-09-14

每日3题1以下代码执行后,控制台中的输出内容为?varcompany={address:"chengdu",};varobj=Object.create(company);deleteobj.address;console.log(obj.address);2以下代码执行后,控制台中的输出内容为?vara=[0];if(a){console.log(a==true);}else{console.log(a);}3以下代码执行后,控制台中的输出内容为?(function(){vara=(b=5);})();console.log(b);console.log(a);公众号【今天也要写bug】更多

前端面试题JavaScript篇——2022-09-14

每日3题1以下代码执行后,控制台中的输出内容为?varcompany={address:"chengdu",};varobj=Object.create(company);deleteobj.address;console.log(obj.address);2以下代码执行后,控制台中的输出内容为?vara=[0];if(a){console.log(a==true);}else{console.log(a);}3以下代码执行后,控制台中的输出内容为?(function(){vara=(b=5);})();console.log(b);console.log(a);公众号【今天也要写bug】更多

I/O多路复用

I/O多路复用Linux下实现I/O复用的系统调用方式主要:select、poll、epoll。select系统调用select系统调用可在一段指定时间内,监听文件描述符上的可读、可写和异常等事件,判断发生的事件需要轮询。#include//select监听文件描述符事件//nfds: 被监听文件描述符中最大值+1 //readfds: 可读事件对应的文件描述符集,对应位置1;会被内核修改,返回时无事件的置0。//writefds: 可写事件对应的文件描述符集,对应位置1;会被内核修改,返回时无事件的置0。//exceptfds:异常事件对应的文件描述符集,对应位置1;会被内核修改,返回时无

I/O多路复用

I/O多路复用Linux下实现I/O复用的系统调用方式主要:select、poll、epoll。select系统调用select系统调用可在一段指定时间内,监听文件描述符上的可读、可写和异常等事件,判断发生的事件需要轮询。#include//select监听文件描述符事件//nfds: 被监听文件描述符中最大值+1 //readfds: 可读事件对应的文件描述符集,对应位置1;会被内核修改,返回时无事件的置0。//writefds: 可写事件对应的文件描述符集,对应位置1;会被内核修改,返回时无事件的置0。//exceptfds:异常事件对应的文件描述符集,对应位置1;会被内核修改,返回时无

solidity简单的ERC20代币实现

//SPDX-License-Identifier:GPL-3.0pragmasolidity>=0.7.0import"hardhat/console.sol";//ERC20同质化代币,每个代币的本质或性质都是相同//ETH是原生代币,它不是ERC20代币,它们两是不能协同工作。所以需要将ETH转换成WETH(ERC20)//ERC20必须实现相应的接口(规范),参见https://eips.ethereum.org/EIPS/eip-20//totalSupply代币发行总供应量,它即可以固定不变,又可以根据业务需求而改变//totalSupply代币发行总供应量是否可变,取决于合约是否

solidity简单的ERC20代币实现

//SPDX-License-Identifier:GPL-3.0pragmasolidity>=0.7.0import"hardhat/console.sol";//ERC20同质化代币,每个代币的本质或性质都是相同//ETH是原生代币,它不是ERC20代币,它们两是不能协同工作。所以需要将ETH转换成WETH(ERC20)//ERC20必须实现相应的接口(规范),参见https://eips.ethereum.org/EIPS/eip-20//totalSupply代币发行总供应量,它即可以固定不变,又可以根据业务需求而改变//totalSupply代币发行总供应量是否可变,取决于合约是否