计算机组成原理组成+Keil调试

2021-12-20 15:46:58 浏览数 (1)

眼看着要考试了,来预习一下计算机组成原理~

内容杂乱,权当笔记,所有的资料都扔GitHub了。然后后面加了点调试的资料。

一开始,汇编的开胃菜,助记符

乘法

除法

注意,从堆栈弹出的地址给了A,数据中转

MOVX是外部的读写指令

用户使用的空间是前128个单元

有32k的ROM,装程序

一道计算题

地址的计算

结果是这样的

汇编伪指令ORG作用是定义程序或数据块的起始地址,指示此语句后面的程序或数据块以nn为起始地址连续存放在程序存储器中。

ORG是Origin的缩写:起始地址,源。在汇编语言源程序的开始通常都用一条ORG伪指令来实现规定程序的起始地址。如果不用ORG规定则汇编得到的目标程序将从0000H开始。

ORG数值表达式伪指令的作用是:告诉汇编程序,本伪指令下面的内存变量从该“数值表达式”所指定的地址开始分配。汇编语言提供了一个特殊的符号“$”来引用偏移量计数器的值。

ORG就是开始的执行位置

手写一段代码

重点位置补0

题目

编写

三种加法

两种读写

一种加法

常用的口线

地址的计算

51的地址分区

位寻址也叫布尔处理器

计算

虽然我考研不考这个,但是假如卷子上面让你写这个,你会不

这段话编程的时候比较有用

介绍5个

这个寄存器比较有用

几个标志位

奇偶标志位

堆栈指针SP,81H,细节,记住

使用的是MOVX指令,间接寻址

计算

计算

标志位

点击这里显示地址

一般是第三个可以看地址

一般都是D读取地址

汇编中ret的作用:

从堆栈中退出pc的高8位和低8位字节,把堆栈指针减2,从pc值处开始继续执行程序。不影响任何标志。

我本来没准备写这个,但是官方的文档好好,所以决定记录下来

调试按钮

这里倒是也可以点,不过一般都是使用快捷键

断点是程序地址或表达式,当为 TRUE 时,停止程序执行或执行指定的命令。可以通过多种方式定义和修改断点:

使用插入/删除断点 工具栏按钮。在编辑器或反汇编窗口中选择代码行,然后单击工具栏按钮或按 F9。

  • 单击编辑器或 反汇编窗口的左边距。
  • 使用编辑器或 反汇编窗口的上下文菜单。
  • 使用调试命令BreakSet、BreakAccess、BreakKill、BreakList、BreakEnable和BreakDisable。
  • 使用对话框Debug-Breakpoints。

这个按钮就是F9的作用

这里可以输入一些指令

大小写不敏感

箭头是指当前调试的位置

输入命令可以在下面有提示

打断点居然在这种情况下也可以打,F9就好

断点管理

  • 定义几种类型的断点。
  • 使用字段Current Breakpoints中的复选框临时启用或禁用断点。
  • 通过双击列出的断点来查看断点定义。
  • 删除一个或所有断点。

上面的4个点是可以在这个里面设置的。

  • Access Break (A)在标志Read或Write或两者都被设置时被定义 。当发生指定的内存访问时触发断点。以字节或表达式的对象大小指定内存访问窗口的大小。对于此断点类型,表达式必须解析为内存地址和内存类型。允许的运算符(&、&&、<.<=.>、>=、== 和 !=)在程序执行停止或执行Command之前比较变量值 。
  • 当Expression 解析为代码地址时,将定义执行中断 (E)。当到达指定的代码地址时触发断点。代码地址必须指向 CPU 指令的第一个字节。
  • 当表达式 不能简化为地址时,定义了条件中断 (C)。当条件表达式变为 TRUE 时触发断点。条件表达式在每条 CPU 指令后重新计算,可能会大大减慢程序的执行速度。

该计数值指定断点触发之前断点表达式必须计算为TRUE的次数。

例子

就这样的用法

这里是设置的窗口

显示寄存器参数

0 人点赞