`

offset与lea

 
阅读更多

offset与lea

offset是操作符(或说伪指令);lea是硬指令,其操作数必须为内存操作数;offset在编译阶段得出偏移地址;lea在程序执行的时候才去的偏移地址;
offset经过编译后,得到的是操作数是一个数值。从速度上来说,要比lea来得快! 但是,从复杂度和灵活性来说,lea则远远超过offset。
下面的指令是非法的:
MOV AX,OFFSET [BX+200]
因为人BX+200的值在编译的时候无法确定。但可以用lea语句来代替:
LEA AX,[BX+200]
也等价于:
ADD BX, 200
MOV AX, BX

参考:http://topic.csdn.net/u/20101220/22/6af951db-a38b-4f48-8f0a-d122a1a6ea0e.html

分享到:
评论

相关推荐

    微机复习重点及汇编举例

    - **操作数中的数据项**:掌握常量、标号、变量名、表达式的定义,以及类型操作符和取地址操作符的用法,注意区分OFFSET与LEA指令的异同。 - **伪指令**:熟悉数据定义(DB/DW/DD/DUP)、符号定义(EQU/=)、段定义...

    汇编子程序收集.pdf

    LEA SI,ARRAY MOV CX,COUNT CALL SUM1 CALL DISPLAY 在上面的代码中,我们使用寄存器SI来传递数组的首地址,使用寄存器CX来传递数组的长度。 2. 直接存储单元传递 在汇编语言中,我们也可以使用直接存储单元来...

    汇编实验程序代码 字符串匹配 排序 bios dos

    MOV DX,OFFSET STRING1 MOV AH,9 INT 21H MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H MOV DX,OFFSET CRLF MOV AH,9 INT 21H MOV DX,OFFSET STRING2 MOV AH,9 INT 21H MOV DX,OFFSET BUF2 MOV AH,0AH...

    微机原理与接口技术(清华第二版)第四章作业.doc

    OFFSET和LEA指令则涉及到了地址计算,OFFSET获取变量的偏移地址,LEA获取变量子段的逻辑地址。 逻辑地址的计算在题目中也有所体现。例如,X1和X2的逻辑地址是通过基地址10A0H加上各自的偏移量来确定的,这展示了...

    汇编语言-在线第4周1.pdf

    与`OFFSET`操作符相比,`LEA`在执行时计算地址,而`OFFSET`在汇编阶段就得到变量的偏移地址,因此`LEA`可以处理在汇编时无法确定的偏移地址,具有更大的灵活性。 总的来说,汇编语言中的数据传送指令是程序设计的...

    zxc.rar_ZXC大写_ZXC小写怎么写_sub

    MOV DX, OFFSET PMT1 MOV AH,09H 提示输入小写字符 INT 21H MOV DX,OFFSET STR1 MOV AH,0AH 输入小写字符 INT 21H MOV CL,STR1+1 MOV CH,0 LEA SI,STR1+2 LEA DI,STR2 LOP:MOV AL,[SI] SUB AL,20H MOV ...

    微机原理与接口技术(清华第二版)第四章作业.pdf

    本资源为微机原理与接口技术第四章作业,涵盖了微机原理和接口技术的基本概念和应用,包括数据段、栈段、代码段、寄存器、内存地址、偏移地址、逻辑地址、MOV指令、LEA指令、INT指令等。 一、数据段 * 数据段...

    汇编语言8086--清华大学出版社答案

    8086汇编语言答案(清华大学出版社) 3.2 (1) ADD DX, BX ...(6) OFFSET 只能与简单的符号地址相连,不能与MYDAT[SI]相连。 (7) CS不能作为目的操作数。 (8) 两个操作数的类型不匹配。 。。。。。。。。。

    汇编语言程序设计练习

    汇编语言程序设计练习。好东西大家共享.1、简述标志寄存器各个位的含义。(2.1) 2、简述8086机器代码格式。 (2.2) 3、分别指出下列指令中源操作数和目的操作数的寻址方式。(2.2) ...LEA DI,4[SI]

    汇编语言-在线第4周1.pptx

    与`OFFSET`操作符不同,`OFFSET`在汇编阶段就确定了变量的偏移地址,而`LEA`则在运行时计算地址,可以处理汇编阶段无法确定的偏移地址。例如,`LEA ESI, [EBX+EDI*4+100h]`会计算出EBX和EDI寄存器内容相乘再加100h后...

    三级pc上机题库答案

    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。 试题程序: ? EXTRN LOAD:FAR,SAVE:FAR ...

    微机原理与接口技术(第二版)课后习题解析(第三章).doc

    答案:(1) MOV SI,OFFSET BUFFER1ADD SI,12MOV DX,[SI](2) MOV BX,OFFSET BUFFER1MOV DX,12[BX](3) LEA DI,BUFFER1MOV BX,12MOV [BX][DI] 该习题考察了微机原理与接口技术中的寻址方式和寄存器的使用规则。 3.6...

    汇编语言期末复习知识点总结

    6. **LEA指令与OFFSET的区别**: - **相同点**:都是获取偏移量。 - **不同点**:OFFSET指令的源操作数不能是下标,LEA可以;OFFSET在汇编时计算,LEA在执行时计算;LEA不改变状态标志寄存器。 7. **内存变量和...

    汇编课后作业答案_第三、四次1

    6. 不能直接将 BX 与 3 相加:`DH, BX+3` 应该使用 ADD 或 LEA 指令来正确计算地址。 7. COUNT 是常量,不能被 INC 增加:`INC COUNT` 应该修改为其他变量。 8. 不能直接将字符串赋给数组:`MOV NUM, STR1`,STR1 是...

    华南农业大学2005年汇编试卷A和答案

    - **MOV SI, OFFSET NUM**:与LEA指令相似,也是将NUM的地址加载到SI寄存器中,但是通过OFFSET关键字明确地指出了这种行为。 ### 3. 字节处理程序分析 给出的程序段主要涉及到了对BUF1数组中的每个元素进行特定的...

    汇编2010计算机科学与技术试题A

    2. MOV BX, OFFSET VAR 是一种直接寻址方式,因为它使用OFFSET伪指令获取变量VAR在内存中的偏移地址,并将其加载到BX寄存器中。选项A正确。 3. 不影响条件标志位的指令通常是指不进行算术或逻辑运算的指令。JNC(无...

    南邮课件-汇编语言程序设计-第四次作业.doc

    2. 程序段执行后AX的值:该程序段从TABLE的ENTRY位置开始取值,假设DS已经初始化为OFFSET TABLE的地址,所以执行后AX=458。 3. 除法指令:可以使用DIV指令进行除法运算,将结果商存放在AX中,余数存放在DX中。注意...

    DOS系统功能调用与BIOS中断调用[归类].pdf

    MOV DI, OFFSET DMESS + 11 MOV CX, ACTL MOV AH, 0 COPY_LOOP: MOV AL, [SI] MOV [DI], AL INC SI INC DI LOOP COPY_LOOP LEA DX, DMESS MOV AH, 9 INT 21H ; 程序结束 MOV AH, 4CH INT 21H CODE...

    南开上机100题--PC技术

    本题目属于“全国计算机等级考试三级 PC技术”范畴,主要考察考生对汇编语言编程能力的理解与掌握,特别是在处理数组数据时的逻辑思维能力和编程技巧。 #### 题目要求 编写一个汇编语言程序,该程序的功能是从内存...

Global site tag (gtag.js) - Google Analytics