• 指路老师的博客
;offset 标号
assume cs:codesg
codesg segment
start:mov ax,offset start;相当于mov ax,0;这一条是3字节指令
s: mov ax,offset s;相当于mov ax,3mov ax,4c00Hint 21H
codesg ends
end start

  • 想知道某条指令在哪,在这条指令前加上标号
  • 病毒程序:如下程序段,添加两条指令,使该程序在运行中将s处一条指令复制到s0
assume cs:codesg
codesg segment
s: mov ax,bx
mov si,offset s
mov di,offset s0
;code
;code
s0:nop;空指令,nop的机器码占一个字节,起占位的作用nopmov ax,4c00Hint 21H
codesg ends
end
  1. s和s0占内存单元的地址
cs:offset s
cs:offset s0
  1. 把s处指令复制到s0处,就是将cs:offset s的数据复制到cs:offset s0
  2. 地址的表示:段地址放在cs中,偏移地址已经送入SI和DI
  3. 要复制数据有多长?mov ax,bx指令的长度为2个字节
assume cs:codesg
codesg segment
s: mov ax,bx
mov si,offset s
mov di,offset s0
mov ax,cs:[si]
mov cs:[di],ax
s0:nop;空指令,nop的机器码占一个字节,起占位的作用nopmov ax,4c00Hint 21H
codesg ends
end
  • 编译本来想就编译那一段程序CX = 15H,未遂
  • 后面加15是可以的,可以看出已经改变了

贺利坚老师汇编课程46笔记:操作符offset取得标号的偏移地址相关推荐

  1. 贺利坚老师汇编课程40笔记:指令里的数据在哪里有多长

    指路老师的博客 汇编中数据位置的表达 立即数 寄存器 内存:段地址SA+偏移地址EA 指令处理数据长度 字操作WORD16位 字节操作BYTE8位 用word ptr或byte ptr指明 示例 操作 ...

  2. 贺利坚老师汇编课程47笔记:jmp short和jmp near ptr和jmp far ptr

    指路老师的博客 错误:转移位移超界,超过一个字节 正确写法如下 远转移 JMP FAR PTR 标号 FAR PTR指明了跳转的目的地址,即标号的段地址CS和偏移地址IP 机器码EA 0B 01 70 ...

  3. 贺利坚老师汇编课程47笔记:jmp指令无条件转移只修改IP

    指路老师的博客 JMP指令的功能 无条件转移,可以只修改IP,也可以同时修改CS和IP(段间转移) JMP指令要给出的信息 转移的目的地址 转移的距离 JMP 2000:1000;段间转移(远转移) ...

  4. 贺利坚老师汇编课程36笔记:[BX+SI+IDATA]和[BX+DI+IDATA]寻址

    指路老师的博客 [BX+SI+IDATA]表示一个内存单元,偏移地址(BX)+(SI)+IDATA,BX中数值加SI中数值加IDATA立即数,段地址DS 往内存里写数 21000H BE 210001 ...

  5. 贺利坚老师汇编课程28笔记:使用附加段寄存器ES进行拷贝

    指路老师的博客链接 将内存FFFF:0 ~ FFFF:B中的数据拷贝到0:200~0:20b单元中 段地址每循环一次变一次的初始方案 ;初始方案 ASSUME CS:CODE CODE SEGMENT ...

  6. 贺利坚老师汇编课程73笔记:键盘输入的处理过程

    指路老师的博客 键盘的每一个键相当于一个开关,键盘中有一个芯片对键盘的每一个键的开关状态进行扫描 按下一个键的操作 开关接通,该芯片就产生了一个扫描码,扫描码说明按下的键在键盘的位置 扫描码被送入主板 ...

  7. 贺利坚老师汇编课程70笔记:端口的读写

    指路老师的博客 端口对应外部设备 发声程序 assume cs:codecode segment start:mov al,08h;设置声音频率out 42h,alout 42h,alin al,61 ...

  8. 贺利坚老师汇编课程66笔记:自定义除法中断学习如何编制中断程序

    指路老师的博客 CPU随时可能检测中断信息,所以中断程序常驻内存(一直存储在内存的某段空间中) 中断处理程序的入口地址,即中断向量,必须存储在中断向量表的表项中 (0000:0000 - 0000:0 ...

  9. 贺利坚老师汇编课程61笔记:操作显存数据即在屏幕上显示

    指路老师的博客 屏幕上内容 = 显存数据 B8000H~BFFFFH共32K空间时80 * 25(25行80列)彩色字符模式,第0页的显示缓冲区 编程序在屏幕的中间,白底蓝字,显示"Welc ...

最新文章

  1. 1048 数字加密 --非满分
  2. 企业项目学习准备阶段——Rhel6.5版本无图形虚拟机封装过程及相关配置
  3. 麦肯锡AI应用报告:深度学习是蓝海还是深坑?
  4. Android Dialog 全屏、Dialog 底部显示
  5. 【整理】ABAP快捷启动Debug三种方式
  6. 我什么计算机作文600字,我家的电脑作文600字
  7. Http状态码完整说明
  8. JUnit5 @RepeatedTest注解示例
  9. OSPFv3报文中Option字段变化简介
  10. 用 TStringList 模拟 将字符串转换为变量的功能 - 回复 flq_00000 和 外来天客 的问题...
  11. 交换机配置snmp/trap/静态路由/LLDP服务详细步骤/华为交换机忘记登录密码
  12. usb声卡驱动(五):声卡驱动的开始
  13. 解决局域网文件共享“****无法复制,指定的网络名不可用”
  14. Ubuntu下pycharm设定任务栏图标后打开出现问号图标
  15. 考研操作系统【1.5 操作系统引导与虚拟机】
  16. [HNOI2007] 紧急疏散EVACUATE
  17. 苹果充电器怎么辨别真假_如何快速辨别苹果充电器数据线耳机等配件真假和是否正品问题...
  18. 初识C语言:了解基础指针
  19. FFmpeg实现音频解码并播放
  20. 【笔记】python中的for循环(遍历列表)、for循环中的一些缩进问题

热门文章

  1. 产品开发管理方法工具流程 pdf_HR必备薪酬和绩效管理方法论、工具、案例
  2. nmon安装为什么重启mysql_Centos7部署nmon监控工具
  3. 最简单的基于FFmpeg的移动端例子附件:IOS自带播放器
  4. 视频特性TI(时间信息)和SI(空间信息)的计算工具:TIandSI-压缩码流版
  5. OpenCV:概述、结构和内容
  6. python rpy2时间序列_当从多线程使用rpy2调用r函数时,模型作为r函数的参数
  7. python字符串截取后拼接_Python字符串拼接、截断、搜索、替换,python,截取,查找
  8. bootstrap-table 树形结构
  9. Extjs数据展现原理
  10. 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义