美文网首页
【汇编语言】第 9 章 转移指令的原理

【汇编语言】第 9 章 转移指令的原理

作者: gfson | 来源:发表于2017-07-03 16:57 被阅读0次

版权声明:本文为 gfson 原创文章,转载请注明出处。
注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢。

9.1 概述

9.2 操作符 offset

9.3 jmp 指令

  • jmp short 标号(段内短转移
  • jmp near ptr 标号(段内近转移
  • jmp far ptr 标号(段间转移,远转移
  • jmp word ptr 内存单元地址(段内转移
  • jmp dword ptr 内存单元地址(段间转移

9.4 检测点 9.1

  • 答案:
    (1)db 0,0,0
    (2)如下所示:
  • bx
  • cs

(3)(CS)=0006,(IP)=00BE

9.5 jcxz 指令

9.6 检测点 9.2

  • 答案:
mov cl, [bx]
mov ch, 0 ;注意这一步是必需的
jcxz ok
inc bx

9.7 loop 指令

9.8 检测点 9.3

  • 答案:
inc cx ;注意loop的工作原理

9.9 根据位移进行转移的意义

  • 为了使程序在内存的各个地方都可以运行,不受内存固定地址的限制

9.10 实验 8

  • 答案:
  • 程序的入口为 mov ax, 0
  • 注意到指令 jmp short s1 占 2 字节,于是指令 mov di, offset s 将 s 的偏移地址传送到寄存器 DI,mov si, offset s2 将 s2 的偏移地址传送到 SI,然后再通过通用寄存器 ax 做中转将 s2 处的指令复制到 s 处,最后再跳转至 s 处执行复制过来的指令。
  • 注意 jmp short s1 是相对跳转,其直接修改 IP 寄存器,从 s2 到 s1 共有8个字节的偏移,实际上 jmp short s1 等价于 (ip)=(ip)-8,通过 Debug 可知第一个 nop 指令的偏移地址为 8,所以再执行了复制过的指令后,IP 将指向 0,程序按照顺序执行 mov ax, 4c00hint 21h,正确返回。
  • 所以程序可以正常返回。

9.11 实验 9

  • 答案:
assume cs:code
data segment
db 'welcome to masm!' 
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
mov di,10*160+80 ;第十行中间
mov cx,16
s1: mov al,ds:[si]
mov ah,00000010B ;绿色
mov es:[di],ax
inc si
inc di
inc di
loop s1
mov si,0
mov di,11*160+80 ;第十一行中间
mov cx,16
s2: mov al,ds:[si]
mov ah,00100100B ;绿底红色
mov es:[di],ax
inc si
inc di
inc di
loop s2
mov si,0
mov di,12*160+80 ;第十二行中间
mov cx,16
s3: mov al,ds:[si]
mov ah,01110001B ;白底蓝色
mov es:[di],ax
inc si
inc di
inc di
loop s3
mov ax,4c00h
int 21h ;如果要看到完整的显示请输入:“-g 4c”,即立即运行到此条指令
code ends
end start

相关文章

  • 【汇编语言】第 9 章 转移指令的原理

    版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...

  • 汇编笔记4(跳转)

    第9章(转移指令): 8086转移指令: 无条件转移指令,条件转移指令,循环指令,过程,中断 offset(伪指令...

  • 编译原理知识汇总

    编译原理 第一章 引言 1.从面向机器的语言到面向人类的语言 汇编指令:用符号表示的指令被称为汇编指令汇编语言:汇...

  • 第 1 章 基础知识

    1.汇编语言的定义?汇编语言是各种CPU提供的机器指令的助记符的集合(汇编指令同机器指令一一对应),而且汇编语言可...

  • <<汇编语言>>第1章笔记

    第一章 基础知识 汇编语言基本概念 汇编指令是机器指令便于记忆的书写格式,通过编译器把汇编指令对应到机器指令,汇编...

  • 汇编入门一

    汇编语言与其它语言的关系 汇编语言的特点 对于不同型号的计算机,有着不同的结构的汇编语言,汇编指令是机器指令的助记...

  • 汇编语言

    @[toc] 汇编语言 汇编语言的主体是汇编指令 操作 寄存器bx的内容送到ax中 机器指令 1000100111...

  • 【汇编语言】第 13 章 int 指令

    版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...

  • 读《深入理解Java虚拟机》- 笔记05

    《深入理解Java虚拟机:JVM高级特性与最佳实践》第2版 第6章 类文件结构 41. 控制转移指令 让JVM有条...

  • 汇编学习记录 9转移指令的原理

    1.定义:可以修改IP,或者同时修改CS和IP的指令统称为转移指令。2.操作符OFFSEToffset是取得标号距...

网友评论

      本文标题:【汇编语言】第 9 章 转移指令的原理

      本文链接:https://www.haomeiwen.com/subject/rtczcxtx.html