zoukankan      html  css  js  c++  java
  • 早期as86汇编指令rep movw解释

    研读linux内核早期源代码,发现这样一段:

    45 entry start ! 告知连接程序,程序从start 标号开始执行。
    46 start:
    47 mov ax,#BOOTSEG ! 将ds 段寄存器置为0×7C0;
    48 mov ds,ax
    49 mov ax,#INITSEG ! 将es 段寄存器置为0×9000;
    50 mov es,ax
    51 mov cx,#256 ! 移动计数值=256 字;
    52 sub si,si ! 源地址 ds:si = 0×07C0:0×0000
    53 sub di,di ! 目的地址 es:di = 0×9000:0×0000
    54 rep ! 重复执行,直到cx = 0
    55 movw ! 移动1 个字;
    56 jmpi go,INITSEG ! 间接跳转。这里INITSEG 指出跳转到的段地址。
    57 go: mov ax,cs ! 将ds、es 和ss 都置成移动后代码所在的段处(0×9000)。

    查了很多资料,才完全弄清楚,这种汇编语法和AT&T以及现代intel汇编有不少区别的样子:(,看来还是有不少要继续学习的

    rep: 重复执行该语句直至寄存器cx为0

    movw: 将DS:SI的内容送至ES:DI,note! 是复制过去,原来的代码还在。

  • 相关阅读:
    mysq 中 information_schema 库
    python mysql创建表
    Mysql 连接池
    mysql 事务、游标
    python 操作数据库1--连接、执行sql语句
    搭建自动化脚本运行环境
    快速定位XPATH
    Fiddler--Filters
    Fiddler--Composer
    Fiddler--AutoResponder
  • 原文地址:https://www.cnblogs.com/unsigned-error/p/8456542.html
Copyright © 2011-2022 走看看