爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 972|回复: 5
收起左侧

请教两个命令的用法

[复制链接]
发表于 2005-8-13 00:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
ROM:0048                 extp    #42h, #1 ; 'B'         
ROM:004C                 mov     r2, 3EFCh ;
extp # A,#1
mov rB,C
请教以上两个命令的用法
A 与 C 是什么关系呢?
发表于 2005-8-13 00:01:00 | 显示全部楼层
以下是引用nj528在2004-12-20 19:07:00的发言:

ROM:0048                 extp    #42h, #1 ; 'B'         
ROM:004C                 mov     r2, 3EFCh ;
extp # A,#1
mov rB,C
请教以上两个命令的用法
A 与 C 是什么关系呢?

若address = 0x10BEFC
pof(address) = 3EFCh, pag(address) = 10*4+2 = 42h
extp pag(address), #1  ;当前操作页临时改为pag(address),作用范围:以下的一条语句。
mov r12, pof(address)  ;将pag(address)页中,偏移量为pof(address)地址中的数据放到r12中;也就是将0x10BEFC中的数据考到r12中。
具体可以看c166/167得指令集手册。
 楼主| 发表于 2005-8-13 00:02:00 | 显示全部楼层
能提供一个中文的手册吗?我找不到
发表于 2005-8-13 00:03:00 | 显示全部楼层
这个东西开始也搞得我头挺大,不过现在总算有点了解了。
其实一般就是提取数据用的。比如有时候需要在补丁里面用到年、月、日这些数据,这个时候用的就是EXTP指令,如下:
extp #0dh,#1
mov r12,25dch
上面这句的作用就是到d:25dc这个地址取得数据存到r12里面。(当然这里要注意数据和代码的寻址区别,狼大的入门教材里面说得很清楚,我就不多说了。)中文的教材不好找,我一直看英文版,其实我觉得不一定要看汇编指令手册,你看一下狼大的“更改网络服务商为星期”这个补丁的原代码吧,很有用。
[此贴子已经被作者于2004-12-30 17:29:32编辑过]

发表于 2005-8-13 00:04:00 | 显示全部楼层
以下是引用nj528在2004-12-20 19:07:00的发言:

ROM:0048                 extp    #42h, #1 ; 'B'         
ROM:004C                 mov     r2, 3EFCh ;
extp # A,#1
mov rB,C
请教以上两个命令的用法
A 与 C 是什么关系呢?
Flash中的地址为:(42*3FFF + 3EFC)
如果你想取一FLASH地址中的数据,则EXTP 后的第一个数为 FLASH地址 除 3FFF 后所得的商,
余数为 MOV 指令后的第二个数!
 楼主| 发表于 2005-8-13 00:05:00 | 显示全部楼层
pag(address) :pof(address)是怎样算的呢,PAG*3FF + POF 这个好像不是很准确
您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-20 04:28

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表