当前位置: 首页 > news >正文

wordpress 读取数据库wordpress视频优化

wordpress 读取数据库,wordpress视频优化,wordpress描述设置,装修公司网页设计目录 字符串的指令 movs 字符串传送 lods, stos使用 cmpsb的使用 SCASB的使用 字符串你很熟悉了#xff0c;我们定义了无数次了#xff01; %macro ANNOUNCE_STRING 2%1 db %2%1_LEN equ $ - %1 %endmacro 当然#xff0c;我们现在来学习一个比较新的定义方式#xf…目录 字符串的指令 movs 字符串传送 lods, stos使用 cmpsb的使用 SCASB的使用 字符串你很熟悉了我们定义了无数次了 %macro ANNOUNCE_STRING 2%1 db %2%1_LEN equ $ - %1 %endmacro 当然我们现在来学习一个比较新的定义方式那就是跟C语言一样安插一个哨兵字符\0它的ASCII值就是0 message DB I am loving it!, 0 后面我们会写一个函数叫做strlen函数这里需要提示的就是我们的哨兵字符0会发挥最用 字符串的指令 每个字符串指令可能需要一个源操作数一个目标操作数或两者。对于32位段字符串指令使用ESI和EDI寄存器分别指向源和目标操作数。但是对于16位段SI和DI寄存器分别用于指向源和目标。 有五个用于处理字符串的基本说明。他们是- MOVS-该指令将1字节字或双字数据从存储位置移到另一个位置。 LODS-该指令从存储器加载。如果操作数是一个字节则将其加载到AL寄存器中如果操作数是一个字则将其加载到AX寄存器中并将双字加载到EAX寄存器中。 STOS-该指令将数据从寄存器ALAX或EAX存储到存储器。 CMPS-该指令比较内存中的两个数据项。数据可以是字节大小字或双字。 SCAS-该指令将寄存器ALAX或EAX的内容与内存中项目的内容进行比较。 上面的每个指令都有字节字和双字版本并且可以通过使用重复前缀来重复字符串指令。这些指令使用ES:DI和DS:SI对寄存器其中DI和SI寄存器包含有效的偏移地址这些地址指向存储在存储器中的字节。SI通常与DS数据段相关联DI通常与ES额外段相关联。DS:SI或ESI和ES:DI或EDI寄存器分别指向源和目标操作数。假定源操作数位于内存中的DS:SI或ESI目标操作数位于ES:DI或EDI。 对于16位地址使用SI和DI寄存器对于32位地址使用ESI和EDI寄存器。 基本指令操作的寄存器字节运算字运算双字运算MOVSES:DIDS:SIMOVSBMOVSWMOVSDLODSDS:SILODSBLODSWLODSDSTOSES:DIAXSTOSBSTOSSTOSDCMPSDS:SIES:DICMPSBCMPSWCMPSDSCASES:DIAXSCASBSCASWSCASD movs 字符串传送 这是字符串的传送指令我的意思是想要知道字符串如何传送实际上需要ees, eds, edi, esi,ecx这几个寄存器。字符串的传送比较麻烦因为你需要提供字符串的源地址如果很长那还需要es, ds以及传送的长度如何。 当然传送长度就需要请出我们的ECX作为我们的Indexer了。下面我来露一手 ; -------------------------------------------------- ;   Program written in 10.21 2024 ;   Author:             Charlie chen ;   Functionality:     usage of movsb ; -------------------------------------------------- ​ %macro ANNOUNCE_STRING 2%1 db %2%1_LEN equ $ - %1 %endmacro ​ ; fast use of common value %define MY_STDOUT       1 %define MY_SYS_WRITE   4 ​ ; print string in a simple way %macro PRINT_STRING 2mov edx, %2mov ecx, %1mov ebx, MY_STDOUTmov eax, MY_SYS_WRITEint 0x80 %endmacro ​ %macro EASY_PRINT_STRING 1PRINT_STRING %1, %1_LEN %endmacro ​ section .dataANNOUNCE_STRING SOURCE, {Charliechen is handsome, 0xA}BUFFER resb SOURCE_LEN ​ section .textglobal _start ​ _start:mov ecx, SOURCE_LENmov edi, BUFFERmov esi, SOURCEcld ; 设置我们的拷贝顺序是从左到右rep movsb ​PRINT_STRING BUFFER, SOURCE_LEN ​mov ebx, 0mov eax, 1int 0x80 lods, stos使用 我们的这个指令是用来存储和加载字符串的操作方式是对之做每一个定长大小做操作。举个例子我们想要对每一个字符加上一个2变成一个面目全非的字符串我们可以这样做 ; -------------------------------------------------- ;   Program written in 10.21 2024 ;   Author:             Charlie chen ;   Functionality:     usage of stosb, lodsb ; -------------------------------------------------- ​ %macro ANNOUNCE_STRING 2%1 db %2%1_LEN equ $ - %1 %endmacro ​ ; fast use of common value %define MY_STDOUT       1 %define MY_SYS_WRITE   4 %define MY_STDIN       0 %define MY_SYS_READ     3 ​ ; print string in a simple way %macro PRINT_STRING 2mov edx, %2mov ecx, %1mov ebx, MY_STDOUTmov eax, MY_SYS_WRITEint 0x80 %endmacro ​ %macro EASY_PRINT_STRING 1PRINT_STRING %1, %1_LEN %endmacro ​ section .dataANNOUNCE_STRING SOURCE, {Charliechen is handsome, 0xA} section .bssBUFFER resb SOURCE_LEN ​ section .textglobal _start ​ _start:mov ecx, SOURCE_LENmov edi, BUFFERmov esi, SOURCE do_add:lodsbadd al, 0x2stosbloop do_addcldrep movsb ​PRINT_STRING BUFFER, SOURCE_LEN ​mov ebx, 0mov eax, 1int 0x80 cmpsb的使用 cmpsb是一个一个比特的比较自动看ecx作为比较的次数。你看这里是一个简单的比较键盘输入的两个字符串的程序 ; -------------------------------------------------- ;   Program written in 10.21 2024 ;   Author:             Charlie chen ;   Functionality:     usage of cmpsb ; -------------------------------------------------- ​ %macro ANNOUNCE_STRING 2%1 db %2%1_LEN equ $ - %1 %endmacro ​ ; fast use of common value %define MY_STDOUT       1 %define MY_SYS_WRITE   4 %define MY_STDIN       0 %define MY_SYS_READ     3 ​ ; print string in a simple way %macro PRINT_STRING 2mov edx, %2mov ecx, %1mov ebx, MY_STDOUTmov eax, MY_SYS_WRITEint 0x80 %endmacro ​ %macro EASY_PRINT_STRING 1PRINT_STRING %1, %1_LEN %endmacro ​ %macro READ_FROM_CONSOLE 2mov edx, %2mov ecx, %1mov ebx, MY_STDINmov eax, MY_SYS_READint 0x80 %endmacro ​ section .dataANNOUNCE_STRING INPUT_SRC1, Tell me your first input: ANNOUNCE_STRING INPUT_SRC2, Tell me your second input: ANNOUNCE_STRING IS_EQUAL, {The String is equal!,0xA}ANNOUNCE_STRING IS_NOT_EQUAL, {The String is not equal!,0xA} ​ section .bssSOURCE1 resb 20SOURCE2 resb 20 ​ ​ section .textglobal _start ​ _start:EASY_PRINT_STRING INPUT_SRC1READ_FROM_CONSOLE SOURCE1, 20EASY_PRINT_STRING INPUT_SRC2READ_FROM_CONSOLE SOURCE2, 20 ​mov esi, SOURCE1mov edi, SOURCE2mov ecx, 20 ​cldrepe cmpsbjecxz EQUALjmp NOT_EQUAL ​ EQUAL:EASY_PRINT_STRING IS_EQUALjmp EXIT ​ NOT_EQUAL:EASY_PRINT_STRING IS_NOT_EQUALjmp EXIT ​ EXIT:mov ebx, 0mov eax, 1int 0x80 SCASB的使用 SCAS指令用于搜索字符串中的特定字符或一组字符。要搜索的数据项应该在AL对于SCASBAX对于SCASW或EAX对于SCASD寄存器中。要搜索的字符串应在内存中并由ES:DI或EDI寄存器指向。 section .textglobal _start        ;must be declared for using gcc_start:                 ;tell linker entry point ​mov ecx,lenmov edi,my_stringmov al , ecldrepne scasbje found ; when found; If not not then the following codemov eax,4mov ebx,1mov ecx,msg_notfoundmov edx,len_notfoundint 80hjmp exitfound:mov eax,4mov ebx,1mov ecx,msg_foundmov edx,len_foundint 80hexit:mov eax,1mov ebx,0int 80hsection .data my_string db hello world, 0 len equ $-my_string   ​ msg_found db found!, 0xa len_found equ $-msg_found ​ msg_notfound db not found! len_notfound equ $-msg_notfound
http://www.hkea.cn/news/14263243/

相关文章:

  • 30个免费货源网站海淀网站开发公司
  • dedecms 音乐网站模板加快公司网站建设
  • p2p理财网站开发框架建立网站的基本过程
  • 建设网站备案不通过怎么办有专做高端折扣女装的网站吗
  • 长寿做网站商务网站开发实训报告
  • 网站伪静态免费炫酷网站模板
  • 专业合肥网站建设广州市住房和城乡建设局官方网站
  • 天津城乡住房建设厅网站首页绵阳 网站
  • 网站会员注册怎么做上海市场监督管理局
  • 公司建立网站的意义做网站需要多少钱知乎
  • 网站建设 部署与发布视频教程广州网站设计权威乐云践新
  • 小网站建设公司排名销量不高的网站怎么做
  • 做网站最省钱零食铺网站建设策划书
  • 做网站是前端还是后端物流公司创建
  • 网站建设和托管哪家好wordpress主题模板文件
  • 上海高端网站开发站霸网络专业网站的建设设行吗
  • 网站描述标签优化网站建设 工作计划
  • 学网站开发需要会什么建设部房地产网站
  • 苏州建网站必去苏州聚尚网络创业做网站APP开发
  • 外贸工厂 网站建设wordpress本地登录密码
  • 网站设计比例揭阳网站建设工作
  • 民制作网站价格深圳投资推广署
  • 官方网站建设案例网页设计工具有哪些
  • 网站建设论坛首页驻马店北京网站建设
  • 泰兴做网站的公司重新建网站需要转域名吗
  • 一个优秀的个人网站微网站生成app
  • 除了速卖通还有什么网站做外贸wordpress获取手机号
  • 在线医疗网站建设cdr做网站流程
  • 国外网站推广如何做免费连网络的软件有哪些
  • 怎么在网站上做游戏代练wordpress主动提交