汇编程序44:检测点13.1 (jmp near ptr 标号指令的中断例程)
安装程序:
assume cs:code
//jmp near ptr 标号指令的替代实现,使用iret指令
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset sub1
mov ax,0020h
mov es,ax
mov di,
mov bx,offset sub2 - offset sub1
cld
rep movsb
mov ax,
mov es,ax
mov word ptr es:[7ch*],200h
mov word ptr es:[7ch*+],
mov ax,4c00h
int 21h
sub1:
push bp
mov bp,sp
cmp bx,-32768 //近转移最小值偏移
jl s0 //有符号数小于则转移
cmp bx,32767 //近转移最大值偏移
jg s0 //有符号数大于则转移
add [bp+],bx //加上两转的偏移即可得到转移目标地址
s0:
pop bp
iret
sub2:
nop
code ends end start
测试程序:
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
汇编程序44:检测点13.1 (jmp near ptr 标号指令的中断例程)的更多相关文章
- 汇编程序45:检测点13.2 (loop指令的中断例程)
安装程序: assume cs:code //loop指令的替代实现 code segment start: mov ax,cs mov ds,ax mov si,offset sub1 mov ax ...
- 用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行,显示data段中以0结尾的字符串. assume cs:code data segment db data ends code segment start: mov ax, ...
- 转移指令jmp和跳转指令call
[-1]写在前面 以下内容文字描述来自于 王爽老师的<汇编语言>教材,建议大家都买一本,哈哈.不是我打广告,确实人家写的好,应该支持.我只是附上了自己的图片和理解而已. [0]先上干货 只 ...
- xwalk_core_library-15.44.384 .13.aar 百度云分享
xwalk_core_library-15.44.384.13.aar 这玩意下载很慢 特意放到百度,需要的可以通过百度下载 http://pan.baidu.com/s/1nt0Cmbn 下完后放到 ...
- 关于8086中的jmp near ptr原理
在8086汇编语言中.jmp 0x7c41 自己跳转到自己的位置,是一个死循环代码.对应的机器指令是e9fdffe9是跳转 fdff其实应该是fffd 也就是-3的补码. 执行到e9fdff相当于把 ...
- 王爽 <<汇编 语言>> 13.6 BIOS中断例程应用
;名称:ILOVEU程序 ;使用BIOS提供的中断例程 assume cs:code code segment main: ;显示背景22*80 ;dh中放行号 ;dl中放列号 bibi: push ...
- 汇编程序52:实验15 安装新的int9中断例程
assume cs:code ;重写int9中断例程,当按住a后松开,便会产生满屏A stack segment dw dup() stack ends code segment start: mov ...
- 汇编:jmp系列跳转指令总结
助记方法: J:跳转C: 进位位置位N: 否S: 符号位置位o: 溢出位置位Z: 零标志位置位E: 等于P:奇偶位置位A: AboveB: BelowL: Less (Little的比较级)G: Gr ...
- call && jmp 指令
对于jmp指令: (1)jmp short 标号相当于(ip)=(ip)+8位位移 跳转范围是[-128,127](2)jmp near ptr 标号相当于(ip)=(ip)+16位位移 跳转范围是[ ...
随机推荐
- Billboard (HDU 2795)
Billboard (HDU 2795) Hdu 2795 注意到每个广告的长度是1,因此可以将每这一张广告牌当成一个数列表示,每个初始值为w.使用线段树维护这个数列,每次查询为找到这个数列第一个大于 ...
- ModelMap org.springframework.ui.ModelMap
ModelMap实现了map接口,可以在其中存放属性,作用域同request,同时可与@SessionAttributes联合使用,把数据放入到session中去, 下面这个示例,我们可以在Model ...
- HDU 1059 多重背包问题
问题大意: 有价值1-6的六种物品,分别规定其数目,问是否存在一种方法能使这些物品不拆分就能平均分给两个人 #include <cstdio> #include <cstring&g ...
- [luoguP2045] 方格取数加强版(最小费用最大流)
传送门 水题 ——代码 #include <queue> #include <cstdio> #include <cstring> #include <ios ...
- 上帝说:要约炮!于是有了XMPP
一.导入XMPP框架 下载 XMPPFramework 框架 GitHub: XMPPFramework 导入依赖框架 CocoaLumberjack : 日志框架 CocoaAsyncSocket ...
- 内核信号处理 & CPU8个通用寄存器
内核信号处理参考: http://www.spongeliu.com/165.html 信号本质上是在软件层次上对中断机制的一种模拟(注意区分中断.异常.信号),其主要有以下几种来源: 程序错误:除零 ...
- Spring mvc 时间转换
http://www.cnblogs.com/ssslinppp/p/4600043.html
- ROBODK仿真如何设置运动速度
设置工具-选项-运动,把仿真时间设置成跟正常一样 然后双击机器人,设置参数(可以设置movej和movel的速度,加速度)
- C# Json反序列化 C# 实现表单的自动化测试<通过程序控制一个网页> 验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案) 大话设计模式:原型模式 C# 深浅复制 MemberwiseClone
C# Json反序列化 Json反序列化有两种方式[本人],一种是生成实体的,方便处理大量数据,复杂度稍高,一种是用匿名类写,方便读取数据,较为简单. 使用了Newtonsoft.Json,可以自 ...
- oracle11g 手工建库步骤
#create oracle instance parameter vi initkevin.or db_name='kevin' memory_target=0 sga_max_size=5G sg ...