x86基础学习

一、字符串的修改和替换

1、;需求1:将内存中的he修改为wo
data segment
    str dw 'he'
    newstr dw 'wo'
data ends
start:
    mov ax,data
    mov ds,ax
    mov ax,ds:str
    mov ds:newstr,ax

end start


2、;需求2:将内存中的hello修改为wowowo
data segment
    str dw 'hello '
    newstr dw 'wowowo'
data ends
start:
    mov ax,data
    mov ds,ax
    mov ax,ds:str
    mov ds:newstr,ax
    mov ax,ds:str+2
    mov ds:newstr+2,ax
    mov ax,ds:str+4
    mov ds:newstr+4,ax

 end start
  
3、分段写法
  data segment
    str dw 'hello '
data ends
newData segment
    newstr dw 'wowowo'
newData ends
code segment

4、;如果有多个段包裹,需要对代码段也进行段包裹 start:
    mov ax,data
    mov ds,ax
    mov ax,newData
    mov es,ax
    mov ax,ds:str
    mov es:newstr,ax
code ends
end start

 

二、Loop循环指令

注:在同一个段包裹中,偏移地址从0开始,依次递增

1、类似于高级语言中的while循环,系统默认从cx寄存器中读取数据作为循环的条件,当cx中的值cx- 1大于零时循环执行一次代码

2、offset的作用

mov bx,offset str
;有offset str表示偏移地址
;没有offset str表示偏移地址所指向的数据[](取内容)

3、加减运算指令add和sub

sub/add 通用寄存器,数值

sub/add 内存地址,通用寄存器 

sub/add 通用寄存器,内存地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值