简明x86汇编语言教程(21)

时间:2025-07-14

x86汇编语言

例如,在DS:100h处保存1234h,以字存放:

mov word ptr [100h],01234h

于是我们将mov指令扩展为:

mov reg(8,16,32), mem(8,16,32) mov mem(8,16,32), reg(8,16,32) mov mem(8,16,32), imm(8,16,32)

需要说明的是,加减同样也可以在[]中使用,例如:

mov ax,[bx+10] mov ax,[bx+si] mov ax,es:[di+bp]

等等。我们看到,对于内存的操作,即使使用MOV指令,也有许多种可能的方式。下一节中,我们将介绍如何操作串。

3.4 串操作

我们前面已经提到,内存可以和寄存器交换数据,也可以被赋予立即数。问题是,如果我们需要把内存的某部分内容复制到另一个地址,又怎么做呢?

设想将DS:SI处的连续512字节内容复制到ES:DI(先不考虑可能的重叠)。也许会有人写出这样的代码:

mov cx,512 mov es:[di],al inc si inc di

loop NextByte

; 循环次数

NextByte: mov al,ds:[si]

我不喜欢上面的代码。它的确能达到作用,但是,效率不好。如果你是在做优化,那么写出这样的代码意味着赔了夫人又折兵。

Intel的CPU的强项是串操作。所谓串操作就是由CPU去完成某一数量的、重复的内存操作。需要说明的是,我们常用的KMP算法(用于匹配字符串中的模式)的改进——Boyer算法,由于

简明x86汇编语言教程(21).doc 将本文的Word文档下载到电脑

上一篇:春日教学设计

下一篇:南方民族史

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219