当前位置: 首页 > news >正文

网站域名备案做网站网页挣钱不

网站域名备案,做网站网页挣钱不,培训网站计时怎么破,如何设计个人网站汇编初始化栈指针,interrupt,svc preserve8 ;preserve8 和 restore8 通常用于保护寄存器的状态;以确保在函数调用前后某些寄存器的值保持不变area reset,code,readonlycode32entryb startldr pc,do_undefined;这些地址不能随便写,0x0,0x4,0x8....这些…

 汇编初始化栈指针,interrupt,svc

	preserve8		  ;preserve8 和 restore8 通常用于保护寄存器的状态;以确保在函数调用前后某些寄存器的值保持不变area reset,code,readonlycode32entryb startldr pc,=do_undefined;这些地址不能随便写,0x0,0x4,0x8....这些地址代表异常向量表;代码不能随便写在这个地址处,发生异常时系统会自动到这个地址,会执行这个函数ldr pc,=do_sw_intldr pc,=do_pre_abortldr pc,=do_dat_abortnop;空指令ldr pc,=do_irqldr pc,=do_fiqdo_undefinedb do_undefined
do_sw_intimport swi_int_handlerstmfd sp!,{r0-r12,lr}			 ;不仅把swi的lr入栈是把所有模式的lr都入栈 ,把user的lr也入栈相当于lr指向执行67行bl sw_int_handlerldmfd sp!,{r0-r12,pc}^			 ;恢复的时候把所有模式出栈,只不过此时把user的lr给pc
do_pre_abortb do_pre_abort
do_dat_abortb do_dat_abort
do_irqimport irq_handlersub lr,lr,#4stmfd sp!,{r0-r12,lr}bl irq_handlerldmfd sp!,{r0-r12,pc}^
do_fiqb	do_fiq;bx lr		;跳到寄存器中的地址start ldr sp,=0x40001000	  ;立即数之外的数也可以用mrs r0,cpsr		   ;m域interupt模式设置bic r0,r0,#0x1forr r0,r0,#0x12bic r0,r0,#(1<<7)msr cpsr_c,r0ldr r0,=0x40001000	;设置栈指针sub r0,r0,#1024mov sp,r0mrs r0,cpsr	   ;m域user模式设置bic r0,r0,#0x1forr r0,r0,#0x10msr cpsr_c,r0ldr r0,=0x40001000sub r0,r0,#2048mov sp,r0import mainb mainasm_fnexport asm_fnswi #7bx lr;stmfd sp!,{r0-r12,lr} ;storage many full d;	bl addfun		;跳到标签地址,并把当前pc值给lr;mov r0,#1;mov r1,#2;mov r2,#3;bl	max;ldmfd sp!,{r0-r12,lr}	
finishedb finishedend	
#include<stdio.h>
extern max(int a,int b,int c);
extern void  undefined_handler(void);
extern void  swi_int_handler(void);
extern void  pre_abort_handler(void);
extern void  dat_abort__handler(void);
extern void  irq_handler(void);
extern void  fiq_handler(void);
extern void asm_fn(void);max(int a,int b,int c)
{int d=a>b?a:b;int e=c>e?c:e;return e;
}void undefined_handler(void)
{
}
void swi_int_handler(void)
{
}
void pre_abort_handler(void)
{
}
void dat_abort_handler(void)
{
}
void irq_handler(void)
{
}
void fiq_handler(void)
{
}
int main(void)
{asm_fn();//从这边调汇编的函数自动把pc放到lr里面while(1);}

mvn,不是立即数按位取反装

ldr是伪指令,实际由好几个指令组合在一起加等号可以直接装入寄存器

mov移入代码内部提高代码密度,ldr实际上是把数据放到代码区里面,占4个字节

软中断 vs. 硬件中断1. 触发机制:•软中断:通过 swi 指令触发。•硬件中断:通过外部事件触发。2. 返回机制:•软中断:通常通过修改 PC 来返回到调用点。•硬件中断:通过 bx lr 指令返回到中断前的位置。3. 上下文保存和恢复:•软中断:通常不需要显式保存和恢复寄存器状态。•硬件中断:需要显式保存和恢复寄存器状态。恢复位置的区别1. 软中断:•在软中断中,返回地址通常保存在 LR 中,但操作系统会直接修改 PC 来返回到调用点,因此不需要调整 LR。•相当于直接返回到下一条指令。2. 硬件中断:•在硬件中断中,返回地址也被保存在 LR 中,但为了返回到中断发生前的指令位置,通常需要将 LR 减去 4(因为 LR 中保存的是中断发生后的下一条指令地址)。•相当于返回到中断发生时的指令位置。总结•软中断(SWI):•通常用于调用系统调用。•通过修改 PC 来返回到调用点,相当于直接返回到下一条指令。•硬件中断:•用于处理外部事件。•通过 bx lr 指令返回到中断前的位置,通常需要调整 LR 来确保返回到中断发生时的指令位置

在中断处理期间,lr(链接寄存器,Link Register,通常是 r14)中保存的是中断发生后的下一条指令的地址。这一地址在整个中断处理期间保持不变,直到中断处理程序结束并返回到中断发生前的位置。详细解释1. 中断发生时:•当中断发生时,处理器会保存当前程序计数器(PC)的值到 lr 中。•当前 PC 的值实际上是中断发生后下一条指令的地址。2. 中断处理程序:•在进入中断处理程序时,通常会保存当前寄存器的状态(包括 lr)到堆栈中,以防止中断处理程序覆盖这些寄存器的值。•在处理完中断后,再从堆栈中恢复寄存器的状态,并通过 lr 中保存的地址返回到中断发生前的位置。

在ARM架构中,lr(链接寄存器)通常用于保存返回地址。当发生中断或异常时,处理器会自动保存当前 PC 的值到 lr 中,以便在处理完中断或异常后能够返回到中断或异常发生前的位置。具体来说:•中断发生时:lr 中保存的是中断发生后的下一条指令的地址。•中断处理期间:lr 中保存的地址不会改变,始终是中断发生后的下一条指令的地址。•中断处理程序结束时:通过 ldmfd sp!,{r0-r12,pc}^ 指令恢复寄存器状态,并将 pc 设置为 lr 中保存的地址,从而返回到中断发生前的位置。

中断模式和User模式的切换1. 中断发生时:•当中断发生时,处理器会自动进入中断模式(如IRQ模式),并将当前的CPSR保存到SPSR中。•这时,lr 中保存的是中断发生后的下一条指令的地址。2. 中断处理期间:•在中断处理期间,lr 中保存的地址不会改变,始终是中断发生后的下一条指令的地址。•处理器处于中断模式(如IRQ模式)。3. 中断处理结束时:•在中断处理结束后,通过恢复寄存器状态并返回到中断发生前的位置,处理器会恢复到原来的模式(如User模式)。

模式切换1. 进入中断模式:•当中断发生时,处理器会自动进入中断模式(如IRQ模式),并将当前的CPSR保存到SPSR中。•这时,CPSR中的模式位会被设置为中断模式。2. 恢复到原来的模式:•在中断处理结束后,通过恢复寄存器状态并返回到中断发生前的位置,处理器会恢复到原来的模式(如User模式)。•这是通过恢复SPSR中的状态来实现的。

在ARM架构中,当发生中断或异常时,处理器会自动保存当前的程序状态寄存器(CPSR)到备份程序状态寄存器(SPSR)中。具体来说,SPSR中保存的信息取决于处理器当前的模式。SPSR 的作用SPSR(Saved Program Status Register)用于在进入中断或异常处理时保存当前的CPSR状态。当退出中断或异常处理时,可以通过恢复SPSR中的状态来回到原来的工作模式。SPSR 在不同模式下的别名在ARM架构的不同模式下,SPSR有不同的别名:•用户模式(User Mode):无SPSR,因为用户模式下不发生模式切换。•管理模式(Supervisor Mode):SPSR_SVC•中止模式(Abort Mode):SPSR_ABT•未定义模式(Undefined Mode):SPSR_UND•IRQ模式(IRQ Mode):SPSR_IRQ•FIQ模式(FIQ Mode):SPSR_FIQ中断处理过程中的模式切换1. 进入中断模式:•当中断发生时,处理器会自动进入中断模式(如IRQ模式),并将当前的CPSR保存到对应的SPSR中(如SPSR_IRQ)。•这时,CPSR中的模式位会被设置为中断模式。2. 中断处理期间:•在中断处理期间,处理器处于中断模式(如IRQ模式)。3. 恢复到原来的模式:•在中断处理结束后,通过恢复SPSR中的状态来恢复到原来的模式(如User模式)

SPSR 在 IRQ 模式下的状态当进入IRQ模式时,SPSR中保存的是IRQ发生前的CPSR状态。具体来说:•模式位:指示当前的工作模式(通常是User模式)。•中断禁止位:指示是否禁止IRQ和FIQ中断。•条件码:指示当前运算的条件码(如进位标志、零标志等)

http://www.yayakq.cn/news/301076/

相关文章:

  • 现在网站开发都什么技术网站做的自适应体验差
  • 贵阳网站制作 建设wordpress 标签页
  • 广州网站建设gzzhixun北京网站制作设计
  • 推广网站哪个好泉州机票网站建设
  • 沈阳设计培训网站建设佛山大良营销网站建设
  • 汉阳做网站执业医师报考条件2022年最新规定
  • 天津集团网站建设工程建设监理网站
  • 网站手机端生成智能营销型网站
  • 宁波市网站建设制作费用商丘做网站推广
  • 可以做网站的网络单人做网站需要掌握哪些知识
  • h5 网站模板影视网站建设目的
  • delphi xe10网站开发wordpress抓取微博
  • 建设网站虚拟主机是啥意思外贸网站免费建站
  • 电子商务网站开发开发背景哪里可以做游戏视频网站
  • 做网站得多少钱网站开发招标
  • 怎么用360做网站跳转网站建设公司比较好的有哪些
  • 网站合作流程wordpress 二维码插件下载
  • 上海松江做网站公司网站为什么开发app
  • 可以设计什么网站网址大全汽车之家
  • 一键制作网站软件wordpress建站欣赏
  • 手机网站设计图尺寸深圳市力同科技有限公司
  • 网站为什么维护WordPress添加下载弹窗
  • 网站系统源代码wordpress汽车主题公园
  • 480元做网站wordpress做网店
  • 江西省上饶市网站建设公司网页制作网站制作
  • 网站的设计风格有哪些网站自动化采集
  • 制作一个网站大概要多少钱北京互联网公司招聘
  • 专门做外卖的网站建一个淘宝客网站要多少钱
  • 电商网站开发难点如何用网站做cpa
  • 上海建设部网站首页取消网站的通知