用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。
assume cs:code data segment
db 'conversation',
data ends code segment start:
mov ax, data
mov ds, ax
mov si,
mov ax, 0b800h
mov es, ax
mov di, * s:
cmp byte ptr [si],
je ok
mov al, [si]
mov es:[di], al
inc si
add di,
mov bx, offset s-offset ok
int 7ch ok:
mov ax, 4c00h
int 21h code ends
end start
安装程序
assume cs:code code segment start:
mov ax, cs
mov ds,ax
mov si,offset do0
mov ax,
mov es,ax
mov di,200h
mov cx,offset do0end-offsetdo0
cld
rep movsb mov ax,
mov es,ax
mov word ptr es:[7ch*],200h
mov word ptr es:[7ch*+], mov ax,4c00h
int 21h do0:
push bp
mov bp,sp
add [bp+],bx pop bp
iret mov ax,4c00h
int 21h do0end:
nop code ends
end start
用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。的更多相关文章
- 汇编程序44:检测点13.1 (jmp near ptr 标号指令的中断例程)
安装程序: assume cs:code //jmp near ptr 标号指令的替代实现,使用iret指令 code segment start: mov ax,cs mov ds,ax mov s ...
- 关于8086中的jmp near ptr原理
在8086汇编语言中.jmp 0x7c41 自己跳转到自己的位置,是一个死循环代码.对应的机器指令是e9fdffe9是跳转 fdff其实应该是fffd 也就是-3的补码. 执行到e9fdff相当于把 ...
- 转移指令jmp和跳转指令call
[-1]写在前面 以下内容文字描述来自于 王爽老师的<汇编语言>教材,建议大家都买一本,哈哈.不是我打广告,确实人家写的好,应该支持.我只是附上了自己的图片和理解而已. [0]先上干货 只 ...
- 汇编:jmp系列跳转指令总结
助记方法: J:跳转C: 进位位置位N: 否S: 符号位置位o: 溢出位置位Z: 零标志位置位E: 等于P:奇偶位置位A: AboveB: BelowL: Less (Little的比较级)G: Gr ...
- LPC1768外部中断与GPIO中断
LPC1768的外部中断严格来说只有四个,分别是EINT0,EINT1,EINT2,EINT3,技术手册上有如下说明 控制这四个外部中断靠以下寄存器 这三个寄存器的0 1 2 3位分别代表中断的0 1 ...
- AVR 嵌入式单片机芯片的中断系统介绍
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- Linux中断概述
中断和异常 1.1中断的由来及实质 Linux内核要管理计算机上的硬件设备,首先要和他们通信.而处理器的速度跟外围硬件设备的速度往往不在一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求,然后 ...
- 【STM32H7教程】第33章 STM32H7的定时器应用之TIM1-TIM17的中断实现
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第33章 STM32H7的定时器应用之TIM1-T ...
- x86汇编指令详解
80x86指令系统 80x86指令系统,指令按功能可分为以下七个部分. (1) 数据传送指令. (2) 算术运算指令. (3) 逻辑运算指令. (4) 串操作指令. (5) 控制转移指令. (6) 处 ...
随机推荐
- 01_新建WebApi后端服务项目
1.打开微软官网: https://www.asp.net/learn 2.查看文章: https://docs.microsoft.com/en-us/aspnet/web-api/overview ...
- Redis深入学习笔记(三)RDB及AOF流程
RDB是Redis持久化数据的一种方式,是执行时间点的Redis内存快照,redis数据还原时加载rdb文件,Redis的主从数据同步也是基于RDB实现的. RDB流程: 1)执行bgsave命令,R ...
- 机器学习笔记之三-yolov3+win7+vs2017+gpu+opencv编译
1.环境安装 1.1 vs2017+cuda9.1+cudnn7.0可以和tensorflow一起安装网上教程多,不多说. 唯一需要注意的是vs2017要安装好2015版本的工具集v140 ...
- jquery datatable数据初始化
一个datatable的初始化问题,困扰了在下整整半天,最后在网上各位大神的帮助下,终于解决了. 首先分析一下我所遇到的问题: 在HTML上有个下拉框,我需要获取下拉框的值来从后台数据库中获取不同的数 ...
- angular4中引入quill editor
1. npm install --save-dev @types/quill 安装types 2.npm install ng2-quill-editor --save 安装quill 3.配置ts ...
- Tomcat的startup.bat启动后显示乱码
打开tomcat文件夹到conf目录下 修改logging.properties 找到 java.util.logging.ConsoleHandler.encoding = utf-8这行 更改为 ...
- 【BZOJ2054】疯狂的馒头(并查集)
/* 经典思路, 倒序并查集处理即可 */ #include<cstdio> #include<algorithm> #include<cstring> #incl ...
- Flask框架里的cookie和session
# -*- encoding: utf-8 -*- #cookie 相关的操作,依赖与make_response库,调用cookie依赖request模块 from flask import Flas ...
- Docker 开启 remoter api
debian 环境: vi /lib/systemd/system/dcoker.service 修改: ExecStart=/usr/bin/dockerd -H fd://为 ExecStart= ...
- selenium与chrome浏览器及驱动的版本匹配
用selenium+python+webdriver完成UI功能自动化,经常会碰到浏览器版本与驱动的版本不匹配而引起报错,下面就selenium与chrome浏览器及驱动的版本匹配 做个总结. 使用W ...