随笔分类 -  Assemble

汇编语言相关
摘要:在第十四章介绍端口的时候,我们知道了CPU不仅和存储器相连,还和一些其他的芯片(可以理解为 外设 )有交互,我们知道了通过 in/out 命令可以从 端口 读出/写入数据,到目前为止,都是我们控制CPU主动向 芯片 发起读写,见图1。而这一章恰恰就要讲到,外设向CPU发起信号时,CPU该如何处理,见 阅读全文
posted @ 2019-06-22 18:10 CoDeleven 阅读(415) 评论(0) 推荐(0)
摘要:第十四章 端口 在这一章,我们可以学到CPU不仅跟各种存储器相连接,还与一下三种芯片会有交互: 1. 各种接口卡,比如,网卡、显卡 2. 主板上的接口芯片,比如一些I/O接口 3. 其他芯片,用来存储相关的系统信息,比如后面要讲到的CMOS RAM 当然,这些芯片都拥有各自的读写寄存器,这些寄存器虽 阅读全文
posted @ 2019-06-22 18:08 CoDeleven 阅读(279) 评论(0) 推荐(0)
摘要:13.1 int指令 int指令的使用格式: ,`n`表示中断类型码,它的作用是引发中断,它的中断流程如下所示: 1. 取中断类型码 n 2. 标志寄存器入栈 3. 设置IF=0、TF=0 4. 压入CS、IP 5. 设置IP = (4 n),CS = (4 n + 2) [表示取对应地址上的内容] 阅读全文
posted @ 2019-06-18 20:45 CoDeleven 阅读(1620) 评论(0) 推荐(0)
摘要:检测12.1 1 1. 0070:018B 2 1. 0:(N 4) + 2 2. 0:(N 4) 实验12注意点 这次的实验12犯了很多错: 1. 原意是想把当前的段地址赋给ds,然后我智障地直接把标号给了ds ,`mov ds, ax`(正确的做法 是将当前的cs的值赋给ds,然后把do0的偏移 阅读全文
posted @ 2019-06-02 18:20 CoDeleven 阅读(208) 评论(0) 推荐(0)
摘要:[TOC] 中断的作用就是暂停当前程序的执行,并转去执行另外一个程序,另外个程序执行完后再回来继续执行当前程序。该过程和 和`return`有点像,不过中断是由硬件主动产生的。 系统内置的内中断 1. 除法错误,比如执行div指令产生的除法溢出 0 2. 单步执行 1 3. 执行into指令 4 4 阅读全文
posted @ 2019-06-02 18:19 CoDeleven 阅读(823) 评论(0) 推荐(1)
摘要:[TOC] 标志寄存器同普通的寄存器一样有16位,它的主要作用就是提供一些程序的状态字段,简称 程序状态字 ZF(零状态寄存器) 当使用 运算指令(比如add、sub、mul等)时,可能会修改ZF位;而传送指令(比如mov、pop、push等)就不会修改ZF位。当执行了运算指令后结果为 0 则 ZF 阅读全文
posted @ 2019-06-02 18:13 CoDeleven 阅读(1163) 评论(0) 推荐(0)
摘要:检测点11.1 1. ZF = 1, PF = 1, SF = 0 2. ZF = 1, PF = 1, SF = 0 3. ZF = 1, PF = 1, SF = 0 4. ZF = 1, PF = 1, SF = 0 5. ZF = 0, PF = 0, SF = 0 6. ZF = 0, P 阅读全文
posted @ 2019-06-02 18:12 CoDeleven 阅读(365) 评论(0) 推荐(0)
摘要:检测点10.1 Q: 补全程序,实现从内存1000:0000处开始执行指令 A: 1. 1000H 2. 0 检测点10.2 Q: 上面的程序执行后,ax中的数值为多少? A: ax = 6 检测点10.3 Q: 上面的程序执行后,ax中的数值为多少? A: ax = 1010H 分析: 1. 将 阅读全文
posted @ 2019-06-02 18:00 CoDeleven 阅读(301) 评论(0) 推荐(0)
摘要:[TOC] 这章主要学习 call 和 ret 两个指令,前者的作用相当于现在高级语言的 方法调用 ,后者相当于高级语言的 方法返回 call指令 call指令分为了 根据偏移量转移 和 根据目的地转移 两种格式 根据偏移量转移 1. call (16位寄存器) 2. call 标号 3. call 阅读全文
posted @ 2019-06-02 17:59 CoDeleven 阅读(477) 评论(0) 推荐(0)
摘要:检测点9.1(1) Q: 若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应定义哪些数据? A: 想要让此时的 指向程序的第一条,只要 这个 字单元(因为是word ptr) 保存着 数值0 即可,所以 里面前三个字节保存0即可。 这道题帮我解决了一个认知错误: 以前一 阅读全文
posted @ 2019-06-02 17:29 CoDeleven 阅读(355) 评论(0) 推荐(0)
摘要:[TOC] 简介 转移指令可以理解为转移程序执行位置的指令。转移指令通常会修改 或( 与`CS`)。 转移指令分类 无条件转移指令(jmp) 其使用方式根据跳转的距离(修改IP的范围)分为三种 1. 段内短转移——跳转的IP范围为 128~127 jmp [short] 标号 jmp (16位reg 阅读全文
posted @ 2019-06-02 16:38 CoDeleven 阅读(1139) 评论(0) 推荐(0)