摘要: 实验结论 实验任务1 补全程序 t1.asm如下,完成在屏幕上输出内存单元中的十进制两位数。 assume cs:code, ds:data data segment db 12 db ?,? ; 前一个字节用于保存商,后一个字节用于保存余数 data ends code segment start 阅读全文
posted @ 2018-12-08 16:16 翎安 阅读(165) 评论(2) 推荐(1) 编辑
摘要: 实验结论 实验任务1 实验任务2 由于段的最小分配空间为 16 个字节,所以凡是不满 16 个字节的都按 16 个字节来算。 实验任务3 实验任务4 原因:将 start 去掉之后 CPU 会认为从头开始所有的指令都算做代码,也就是说数据段也会被认为是代码段中的内容,因此会产生错误,而第三题的代码段 阅读全文
posted @ 2018-12-01 20:41 翎安 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 实验结论 实验任务1:综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H。 源代码: 运行结果: 将源代码程序中字数据 0403H 修改为 0441H,再次运行。 实验任务2: 综合使用 loop,[bx],编写完整汇 阅读全文
posted @ 2018-11-24 21:22 翎安 阅读(159) 评论(2) 推荐(0) 编辑
摘要: 实验结论 一、练习1 (1)编写汇编源程序t1.asm,源程序代码如下: 编译t1.asm: 连接t1.obj: (在编译和连接时,如果后面不加分号,会有生成列表文件和映像文件的过程,而加分号是一种简化的方式。) 运行程序,输出结果为36: (2)将line4和line9寄存器dl的值分别修改为5和 阅读全文
posted @ 2018-11-16 21:15 翎安 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 实验结论 实验任务(1) 使用 e 命令修改 0021:0~0021:f 数据 使用d命令查看,修改正确 使用a命令输入指令如下 使用t命令单步调试 做实验前书上的填空结果如下 与实验结果进行比较,发现sp的值和修改的内存单元地址与实际不符,经过分析,发现是因为我对栈这部分知识的理解还不够,在计算s 阅读全文
posted @ 2018-11-15 19:39 翎安 阅读(153) 评论(0) 推荐(1) 编辑
摘要: 内存中字的存储 8086CPU中,用16位寄存器存储一个字,而在前面的学习中了解到内存是以字节为单位划分的,所以一个字要用两个地址连续的内存单元来存放,这就提出了字数据的存取原则(小端法):高—高,低—低,即,字数据的低位字节存放在低地址内存单元;字数据的高位字节存放在高地址内存单元;取低地址内存单 阅读全文
posted @ 2018-11-04 21:57 翎安 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 实验结论 1、使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。 机器码 汇编指令 b8 20 4e mov ax, 4E20H 05 16 14 add ax, 1416H bb 00 20 mov bx, 2000H 01 d8 add ax, 阅读全文
posted @ 2018-10-27 20:01 翎安 阅读(276) 评论(2) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2018-10-13 19:18 翎安 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 什么是汇编语言: 汇编语言是比机器语言高级,但依旧偏向于硬件的一种编程语言。比起C、C++、Java这些偏向于人的语言,在编写汇编程序时需要考虑更全面,要写的代码也要更多,但汇编程序的运行速度却是这些语言所不能比的。不同的CPU也有不同的汇编语言。 汇编语言的组成 and 指令vs.数据: 汇编语言 阅读全文
posted @ 2018-10-13 15:51 翎安 阅读(136) 评论(0) 推荐(0) 编辑