精华内容
下载资源
问答
  • 串指令

    2008-07-15 01:18:00
    今天学习了汇编语言的操作指令,大概做以下笔记,movs 传送cmps 比较scas 扫描lods 从取stos 存入与它们一起搭配的指令是rep 重复repne/repnz 不相等/不为零与rep配合的movs,stos,lods操作start:if...

    今天学习了汇编语言的串操作指令,大概做以下笔记,
    movs 串传送
    cmps 串比较
    scas 串扫描
    lods 从串取
    stos 存入串
    与它们一起搭配的指令是
    rep 重复
    repne/repnz  不相等/不为零

    与rep配合的movs,stos,lods
    操作
    start:
    if(CX==0)
        exit;
    CX--;
    execute str instruction;
    goto start;

    如果str instruction为movs
    movs具体格式为
    movs dst,src
    movsb 字节方式传输
    movsw 字方式传输
    执行的操作是
    1)  ((DI))<--((SI))
    2) 字节操作 根据df使得di加或者减1
    3) 字操作 根据df使得di加或者减2

    df由std和cld来控制
    cld  ---》df=0
    std  ---》df=1

    如果str instruction为stos
    从寄存器取得数据写入到存储器中(也就是写缓存)
    执行操作
    字节操作:((DI))<--(AL) , (DI)<--(DI)+/-1
    字操作:((DI))<--(AX) , (DI)<--(DI)+/-2

    如果str instruction为loas
    从存储器写入数据到寄存器(al或者ax)
    执行操作
    字节操作:(AL)<--((SI)) , (SI)<--(SI)+/-1
    字操作:(AX)<--((SI)) , (SI)<--(SI)+/-2

    而repe/repz,repne/repnz实际条件也就是多了一个对psw中ZF位

    置的判断而已。

    cmps
    是存储器两个地址的连续地址的比较
    执行的操作是
    ((SI))-((DI))
    2) 字节操作 根据df使得di,si加或者减1
    3) 字操作 根据df使得di,si加或者减2

    scas
    是在存储器中查找与al(ax)中相等的位置单元

    以下给出来了一个查找字符串"PERSONAL COMPUTER"中是否存

    在&apos;C&apos;的例子,如果存在打印"Find String",否则打印"Not Find

    String"
    %define _BOOT_DEBUG_
    %ifdef _BOOT_DEBUG_
       org 0100h;
    %else
       org 07c00h    ; 告诉编译器程序加载到7c00 处
    %endif
       mov ax, cs
       mov ds, ax
       mov es, ax
       cld
       mov al, 43h
       mov cx, 11h
       mov di, StrMessage
       repne scasb
       jz Find
       call DispNo
       jmp $
    Find:  
       call DispStr      ; 调用显示字符串例程
       jmp $             ; 无限循环
    DispStr:
       mov ax, StrFind
       mov bp, ax        ; es:bp = 串地址
       mov cx, 11        ; cx = 串长度
       mov ax, 01301h    ; ah = 13, al = 01h
       mov bx, 000ch     ; 页号为0(bh = 0) 黑底红字(bl = 0Ch,

    高亮)
       mov dl, 0
       int 10h           ; 10h 号中断
       ret
    DispNo:
       mov ax, StrNotFind
       mov bp, ax        ; es:bp = 串地址
       mov cx, 15        ; cx = 串长度
       mov ax, 01301h    ; ah = 13, al = 01h
       mov bx, 000ch     ; 页号为0(bh = 0) 黑底红字(bl = 0Ch,

    高亮)
       mov dl, 0
       int 10h           ; 10h 号中断
       ret  
       StrFind: db "Find String"
       StrNotFind: db "Not Find String"
       StrMessage: db "PERSONAL COMPUTER"
       times 510-($-$$) db 0      ; 填充剩下的空间,使生成的二

    进制代码恰好为
                                  ; 512 字节
       dw 0xaa55                  ; 结束标志
     

    展开全文
  • python字符串指令

    2019-05-17 11:02:34
    学numpy时提及字符串指令,复习一下 命令 含义 str.capitalize() 返回字符串的副本,其首字符大写,其余字符小写 str.count(sub,start,end) 从索引start至end范围内substring出现的次数 str.find(sub,...

    学numpy时提及字符串指令,复习一下

    命令 含义
    str.capitalize() 返回字符串的副本,其首字符大写,其余字符小写
    str.count(sub,start,end) 从索引start至end范围内substring出现的次数
    str.find(sub,start,end) 返回sub的最小索引,未找到,则返回-1
    str.format() 执行格式化操作,将string中{}替换为()内的值
    str.isalnum() 如果字符串中的所有字符都是字母数字且至少有一个字符,则返回true,否则false
    str.isalpha() 如果字符串中的所有字符都是字母且至少有一个字符,则返回true,否则false
    str.isdecimal() 如果字符串中的所有字符都是十进制数且至少有一个字符,则返回true,否则false
    str.isdigit() 如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则false
    str.islower() 都是小写且至少有一个字符,则返回true,否则false
    str.join(iterable) iterable中字符串的串联
    str.replace(old,new,count) 替换count次
    str.rfind(sub,start,end) 返回最高索引,没有则返回-1
    str.split(sep,maxsplit) sep作为分隔符字符串,如果给出maxsplit则至多完成maxsplit次拆分
    str.swapcase() 返回字符串的副本,大写字符转换为小写字符
    展开全文
  • 汇编串指令的使用

    2019-06-01 21:30:01
    使用串指令在字符串中统计大写字母A的数目 代码如下: data segment str db 'ABDFBAAAFEARA' len equ $-str ;len为字符串的长度 ends code segment assume cs:code,ds:data start: mov ax,data m...

    使用串指令在字符串中统计大写字母A的数目

    代码如下:

    data segment
            str db 'ABDFBAAAFEARA'
            len equ $-str          ;len为字符串的长度
    ends
    
    code segment
            assume cs:code,ds:data
    start:
            mov ax,data
            mov ds,ax
            mov es,ax
            
            lea di,str
            mov al,'A'
            mov cx,len
            mov bx,0               ;bx存放‘A’的数目
    again:        
            scasb                  ;将al中的值与di所指向的存储器数据进行比较
            jne lop
            add bx,1
            
    lop:    loop again
            
            
            mov ax,4c00h
            int 21h
            
    ends
    end start
            
            
    

    结果如下:
    在这里插入图片描述

    展开全文
  • 已知数据段定义如下: DATAREA SEGMENT CONAME DB ‘SPACE EXPLORERS INC.’ ...用串指令编写程序段完成从左到右把CONAME中的字符串传送到PRLINE的功能。 MOV AX,DATAREA; MOV DS,AX; MOV ES,AX; MOV ...
    1. 已知数据段定义如下:

      DATAREA SEGMENT

      CONAME DB ‘SPACE EXPLORERS INC.’

      PRLINE DB 20 DUP (?)

      DATAREA ENDS

      用串指令编写程序段完成从左到右把CONAME中的字符串传送到PRLINE的功能。

    MOV AX,DATAREA;
    
    MOV DS,AX;
    
    MOV ES,AX;
    
    MOV CX,20;
    
    LEA SI,CONAME;
    
    LEA DI,PRLINE;
    
    CLD;
    
    REP MOVSB;
    
    1. 已知数据段定义如下:

      DATAREA SEGMENT

      CONAME DB ‘SPACE EXPLORERS INC.’

      PRLINE DB 20 DUP (?)

      DATAREA ENDS

      用串指令编写程序段完成从右到左把CONAME中的字符串传送到PRLINE的功能。

    MOV AX,DATAREA;
    
    MOV DS,AX;
    
    MOV ES,AX;
    
    MOV CX,20;
    
    LEA SI,CONAME+19;
    
    LEA DI,PRLINE+19;
    
    STD;
    
    REP MOVSB;
    
    
    
    1. 已知数据段定义如下:

    DATAREA SEGMENT

    CONAME DB ‘SPACE EXPLORERS INC.’

    PRLINE DB 20 DUP (?)

    DATAREA ENDS

    用串指令编写程序段完成比较CONAME和PRLINE两个字符串的功能。

    MOV CX,20;
    
    LEA SI,CONAME;
    
    LEA DI,PRLINE;
    
    CLD;
    
    REPE CMPSB;
    

    4.已知数据段定义如下:

    DATAREA SEGMENT

    CONAME DB ‘SPACE EXPLORERS INC.’

    PRLINE DB 20 DUP (?)

    DATAREA ENDS

    用串指令编写程序段完成检查CONAME字符串中有无空格字符的功能。

    MOV CX,20;
    
    LEA DI,CONAME;
    
    MOV AL,' ';
    
    CLD;
    
    REPNE SCASB;
    
    展开全文
  • 串口触摸屏,一般就是用串口指令控制触摸屏的显示,指令的形式一般是字符,不容易变化。那么,假如想在触屏上显示变化的参数怎么办?例如是采集到的仪表的变化的数值等。 2,怎么解决 先从串口数据的格式说起,...
  • 想要发送一16进制的指令如7E FF 06 0D 00 00 00 EF 方法一: data = [0x7E, 0xFF, 0x06, 0x0D, 0x00, 0x00, 0x00, 0xEF] ser.write(data) 方法二: ser.write(b’\x7E\xFF\x06\x0D\x00\x00\x00\xEF’) ...
  • Linux发送串口指令

    千次阅读 2019-12-25 22:02:38
    USB串口挂载后,可查看如下串口设备 /dev/ttyUSB0 编辑udev权限文件,让普通用户有权限操作串口设备 vim /etc/udev/rules.d/50-usb-...可以使用minicom连接串口进行操作,这里介绍使用echo发送指令给串口: ...
  • 二路可串口指令控制继电器模块资料
  • 文章目录实验目的实验一题目源码实验二题目源码 实验目的 ...(4)实现串指令的调用。 (5)练习使用位运算 实验一 题目 写一个过程statA,该过程统计一个串(串中元素为字长)中有多少正整数,...
  • 串口触摸屏,一般就是用串口指令控制触摸屏的显示,指令的形式一般是字符,不容易变化。那么,假如想在触屏上显示变化的参数怎么办?例如是采集到的仪表的变化的数值等。 2,怎么解决 先从串口数据的格式说起,...
  • 字符串指令操作字节构成的串,用来在内存中将字符串搬来搬去。MOVS/CMPS/SCAS/LODS/STOS指令在执行完一次操作后,都会按照标志寄存器中的DF标志的指示自动地更新ESI/EDI寄存器;这样就可以与REP(重复指令前缀)连用...
  • 1.求字符串长度指令 求字符串长度指令SLEN返回IN参数指定的字符串的长度值,OUT为字节类型。 2.字符串复制指令 字符串复制指令... 【例】 字符串指令应用举例。 LD I0.0 STR_CPY ”HELLO ”,VB0 //将字符串“HE...
  • 1,串口触摸屏存在的问题串口触摸屏,一般就是用串口指令控制触摸屏的显示,指令的形式一般是字符,不容易变化。那么,假如想在触屏上显示变化的参数怎么办?例如是采集到的仪表的变化的数值等。2,怎么解决先从...
  • vim替换字符串指令

    2011-10-12 12:24:16
    vim替换字符串指令 来源: ChinaUnix博客 日期:2009.03.21 19:16 (共有条评论)我要评论   vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,
  • 比如我们要让通过串口给步进电机指令,这个指令包含了哪个电机,这个电机移动多少等等。我们需要一次性输入多条指令。需要把这些指令拆分才能输入给对应的子函数。下面的的代码演示如何操作。 void setup() { ...
  • 有关汇编的几条串指令

    千次阅读 2010-10-14 21:59:00
    一、概述  1)串和串操作  存储器中的地址...  串指令可完成两个存储单元之间的传送和比较操作(也只有串指令才可以)。  2)串操作的共同点  l 源串(源操作数)默认在数据段中
  • (2)串指令的传送

    2011-06-28 19:06:00
    存入串指令STOS可以与REP联用,数据串的长度送到CX寄存器中,以控制重复执行的次数。它可使规定长度的字节单元或字单元设置相同的数值。 LODS(Loadformstring)从串取指令 STOS(Storeintostring)存入串指令这两个源...
  • 1,串口触摸屏存在的问题串口触摸屏,一般就是用串口指令控制触摸屏的显示,指令的形式一般是字符,不容易变化。那么,假如想在触屏上显示变化的参数怎么办?例如是采集到的仪表的变化的数值等。2,怎么解决先从...
  • 串指令 ;这里的 "串" 并不单指字符串, 包括所有连续的数据(如数组); 串指令只用于内存操作. ;-------------------------------------------------------------------------------------------------- ;移动...
  • 常用汇编串指令

    千次阅读 2017-03-11 23:00:44
    ds:si 源段寄存器:源变址 es:di 目标段寄存器:目标变址 cx 重复次数计数器 al/ax 扫描值 d标志 0表示重复操作中si和di应自动增量;1表示应自动减量 z标志 用来控制扫描或比较操作的结束 movs ...
  • [C]字符串指令解释器

    2013-02-04 14:50:15
    这是一个通用字符串指令解释器,并且已经实现了四条指令(help、ver、echo、sort),方便移植的时候测试。 C++测试例程 #include #include extern "C"{ #include "interpretor.h" } using namespace ...
  • 要求使用二种不同的方法(用单一的操作指令、用带重复前缀的操作指令)。 方法一:使用MOVSB指令 DATA SEGMENT ORG 1000H X DB 100 DUP('1') ORG 1050H Y DB 100 DUP('0') DATA ENDS CODE SEGMENT ASSUME ...
  • stm32串口指令

    千次阅读 2018-08-28 16:39:22
     Serial类调用重载的Write和WriteLine方法发送数据,其中WriteLine可发送字符并在字符末尾加入换行符,读取串口缓冲区的方法有许多,其中除了ReadExisting和ReadTo,其余的方法都是同步调用,线程被阻塞直到缓冲...
  • REP指令前缀与MOVS/STOS指令连用以及寄存器ECX的值做计数器,这种组合常常用于实现类似于memcpy()/memset()这样的库函数,被称为“REP字符串指令”。指令的每次迭代可以按固定的粒度拷贝/写入数据,常用的粒度是字节...
  • fanuc机器人字符串指令 字符串暂存器,存储英文数字的字符串。各自的暂存器中,最多可以存储254个字符。字符串暂存器数标准为25个。字符串暂存器数可在控制启动时增加。
  • 几种常用字符串指令

    2018-12-01 02:26:02
    strlen 字符长度;strcpy ,strncpy赋值字符; strcat,strncat追加字符 strcmp,strncmp 比较字符 1strlen //# include &lt;string.h&gt; sise_t strlen( const char *p) 例题1 计算字符长度 # ...
  • 串口指令控制honeywell 3310g触发扫描

    千次阅读 2020-02-06 16:18:30
    常用模式 手工触发模式(Manual Trigger Mode),包含两种模式,常规(Normal)和高速(Enhanced)....串口触发模式(Command Trigger Mode),通过串口发送指令实现开关,指令为SYN T CR {16 54 0D}(开) SYN U CR {15 55 0D}(关...
  • 我使用的事中伟**602RL 全站仪仪器上点发送数据 程序便能接受到 使用串口模拟器也能正常收到我所发的消息 ,不知 全站仪通信指令 还是串口没激活,请大神指点一二, public void onClick_Search3(View v){ ...
  • qt调用串口指令

    2013-10-19 21:32:04
    后来又发送了一串指令,上次发送指令串口返回的值还在串口缓冲区中存放着,等待被读取。 如果你一直发指令,一直不读取,可能下一次你发了某指令,希望读取该指令的返回结果,但是却读取的是上一些没有读取指令的...
  • 已经完全实现用汉字指令控制LED,并且将汉字指令打印到串口调试助手上 串口调试助手是XCOM2.0 代码是在正点原子“串口实验”基础上进行的改动。 源代码实现的功能:单片机通过串口和PC端进行通话,单片机收到PC端发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,178
精华内容 6,071
关键字:

串指令