ARMA8的异常处理表如下可以看到vectortable的基地址是不固定的但是所有异常的偏移地址是固定的。这张表也为了体现这个偏移量,还有要从硬件角度理解的是在CPU设计的时候这些异常就已经定义好了在发生相应的异常时候CPU就自动的转到在异常向量表里的地址处去执行这个过程是不需要软件干预的因此就简单了我们只要把出现相应的异常时候处理过程的函数名(函数名就是这个函数体的指针)放在相应的地址里边就可以
分类:
其他好文 时间:
2019-02-26 21:06:58
阅读次数:
421
IP头的结构 版本(4位) 头长度(4位) 服务类型(8位) 封包总长度(16位) 封包标识(16位) 标志(3位) 片断偏移地址(13位) 存活时间(8位) 协议(8位) 校验和(16位) 来源IP地址(32位) 目的IP地址(32位) 选项(可选) 填充(可选) 数据 IP头的结构 版本(4位) ...
分类:
其他好文 时间:
2019-02-22 12:16:45
阅读次数:
219
汇编指令在写一条汇编指令 或者 一个寄存器的名称时,不区分大小写. mov ax, 18 把18送入AXadd ax, 8 把AX中的数值加上8mov ax, bx 把BX中的数据送入AXadd ax, bx 把BX和AX中的数值相加,结果存在AX中 mov 传送指令mov指令不能用于设置CS IP ...
分类:
其他好文 时间:
2019-02-03 23:29:36
阅读次数:
238
1 DATAS segment 2 Temp db '0000H','$' 3 DATAS ends 4 CODES segment 5 START: 6 mov AX,DATAS 7 mov DS,AX 8 ;正式代码开始 9 mov AX,12ABH ;设置需要显示的AX的值 10 mov si... ...
分类:
其他好文 时间:
2019-01-08 19:33:39
阅读次数:
319
[TOC] 实模式分段机制 1. 为什么要分段 8086cpu有20根地址总线,可以访问 1M (1 [CS段寄存器 : IP指令指针寄存器] 2. 数据段 程序操作的数据也集中一起,放在内存的连续一段区域,称为数据段。 内存中数据位置: [DS段寄存器:偏移地址] 3. 分段后寻址方式 8086的 ...
分类:
其他好文 时间:
2019-01-05 00:15:51
阅读次数:
425
首先设置程序的启动地址,STM32默认的启动地址是从0x8000000开始的,现在我要设置程序向后偏移10K地址,也就是从0x8002800启动。 需要分两步完成上面操作: 一.Keil MDK设置; 设置keil MDK的target 设置flash download。 二.设置程序偏移量 程序偏 ...
分类:
其他好文 时间:
2019-01-04 16:14:08
阅读次数:
1014
一、uboot 环境变量: 1. 打印环境变量:# print 2. 设置启动参数# set bootargs noinitrd init=/linuxrc console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.1.103:/work/nfs_ro ...
分类:
其他好文 时间:
2019-01-02 12:26:56
阅读次数:
237
[BX]和loop指令 1.内存单元间接表示 例:mov ax,[bx] 该指令就是把段地址为ds,偏移地址为bx的数据送给ax寄存器。 2.loop指令 格式: loop 标号 loop指令需要配合cx使用 一般的使用框架: 3.t命令、p命令、g命令 t命令:遇loop会进入循环内部继续单步执行 ...
分类:
其他好文 时间:
2019-01-01 21:00:40
阅读次数:
131
第五章 1.[bx] mov ax,[bx] 设偏移地址为SA,段地址默认存储在DS寄存器中,那么该指令的作用是将地址为DS:SA处的值传入ax寄存器中。 用"()"符号解释为 (ax)=((DS)*16+(bx)) mov [bx],ax 设偏移地址为SA,段地址默认存储在DS寄存器中,那么该指令 ...
分类:
其他好文 时间:
2018-12-31 13:52:03
阅读次数:
228
CPU中,用16位寄存器来存储一个字。字是有2个内存单元组成。高8位存放高位字节,低8位存放低位字节。 CPU要读写一个内存单元时,必须给出这个内存单元的地址,内存地址由段地址和偏移地址组成。 DS 存放要访问数据的段地址, [address] 中address是偏移地址并且是一个具体的数。 !!D ...
分类:
其他好文 时间:
2018-12-31 13:05:36
阅读次数:
235