眼看着要考试了,来预习一下计算机组成原理~
内容杂乱,权当笔记,所有的资料都扔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的次数。
例子
就这样的用法
这里是设置的窗口
显示寄存器参数