利用栈实现软中断


ARM ;下面的指令全是ARM指令,不要顶格
AREA     |.text|,CODE,READONLY   ;代码区
ENTRY   ;程序入口
PRESERVE8   ;8字节对齐


IMPORT myadd
IMPORT mysub

_START
B RESET
LDR PC, UDEF_ADDR
LDR PC, SWI_ADDR
LDR PC, PEBT_ADDR
LDR PC, DATA_ADDR
NOP
LDR PC, IRQ_ADDR
LDR PC, FIQ_ADDR

UDEF_ADDR DCD UDEF_HANDLER
SWI_ADDR DCD SWI_HANDLER
PEBT_ADDR DCD PEBT_HANDLER
DATA_ADDR DCD DATA_HANDLER
DCD 0
IRQ_ADDR DCD IRQ_HANDLER
FIQ_ADDR DCD FIQ_HANDLER


UDEF_HANDLER B UDEF_HANDLER
SWI_HANDLER
STMFD SP!,{R0 - R12,LR} ;LDR R3, [LR,#-4] 将r0-r12和LR放到栈里
LDR R3, [LR,#-4] ;SUB R3,LR,#4 ;LDR R3, [R3]   软中断下需要偏移4
BIC R3, R3,#0XFF000000 ; 位清零
BL SWITCH_CASE

MVN R0, #0X0 ; 0取反为-1
LDMFD SP!,{R0 - R12,PC}^ ;加^恢复寄存器中的状态位
PEBT_HANDLER B PEBT_HANDLER
DATA_HANDLER B DATA_HANDLER
IRQ_HANDLER B IRQ_HANDLER
FIQ_HANDLER B FIQ_HANDLER


RESET ;上电复位直接进入reset模式
LDR SP, =SVC_STACK ;初始化
MRS R0, CPSR ;将状态寄存器读出,获得进入异常前的处理器状态
AND R0, #0XFFFFFFE0 ;将后5位清零
ORR R0, #0X10 ;设置为user模式,10000
MSR CPSR_fxsc, R0 ;重新写回,将修改后的值写回 CPSR寄存器的对应控制域
LDR SP, =USR_STACK

MOV R1, #5
MOV R2, #3
SWI 1
MOV R7, #0XFF
SWI 2
MOV R8, #0XFE
SWI 6
B STOP


SWITCH_CASE
CMP R3, #1
STMFDEQ SP!,{R0 - R3,LR} ;相等的时候才入栈
MOV R0,#8
MOV R1,#5
BLEQ myadd ;跳转到c语言函数
LDMFDEQ SP!,{R0 - R3,PC}

CMP R3, #2
STMFDEQ SP!,{R0 - R3,LR}
MOV R0,#8
MOV R1,#5
BLEQ mysub
LDMFDEQ SP!,{R0 - R3,PC}
STOP
B STOP

AREA     |.data|,DATA,READWRITE    ;数据区
SPACE 128
SVC_STACK
SPACE 128
USR_STACK
END    ;后面空一行
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值