摘要: 这里用到div除法运算,用al存放十位数字,用ah存放个位数字,因为要输出十进制的两位数,则在他们本身数字的基础上加上0的ASCII码值30h即可。最后输出结果为12. 2.补全程序 t2.asm,完成在屏幕上输出 data 段定义的 5 个十进制两位数,数据和数据 之间以空格间隔。 这是仿照实验1 阅读全文
posted @ 2018-12-11 02:36 Sgolden 阅读(119) 评论(1) 推荐(0) 编辑
摘要: 实验任务(1) 实验任务(2) 实验任务(3) 实验任务(4) (3)可以正确执行,因为去掉start之后,编译器便会按顺序(从上到下)执行程序。 实验任务(5) (1) 汇编程序源代码 (2) 在 debug 中调试程序截图,截图中包括如下信息: ① 在实现数据相加前,逻辑段 c 的 8 个字节 阅读全文
posted @ 2018-12-02 23:37 Sgolden 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1.综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据 0403H。 先用ds存放段地址0b80,再给bx存放偏移地址,cx用来表示循环的次数。接着就写循环的代码,因为重复填充字数据,所以bx要+2来实现。 在编辑—汇编—连接— 阅读全文
posted @ 2018-11-25 17:05 Sgolden 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 练习 1 第 1 步,编写汇编源程序 t1.asm, 源程序代码如图 1-1 所示。 第 2 步,对源程序 t1.asm 进行汇编、连接、运行、调试 (1) 运行程序,观察程序输出结果是什么? 输出结果是36 (2)将 line4 和 line9 种寄存器 dl 的值分别修改为 0~9 中任何一个数 阅读全文
posted @ 2018-11-18 22:34 Sgolden 阅读(112) 评论(0) 推荐(0) 编辑
摘要: (1) ax=3130 ax=6462 bx=3534 bx=6C6A sp=00FE 修改的内存单元的地址是0100H(偏移地址) 内存为6462 sp=00FC 修改的内存单元的地址是00FEH(偏移地址)内存为6C6A sp=00FE ax=6C6A sp=00FC bx=6462 (ax和b 阅读全文
posted @ 2018-11-18 19:08 Sgolden 阅读(186) 评论(0) 推荐(0) 编辑
摘要: (1)先用E命令把书上的机器码从0000:0300地址开始写入,再用U命令把机器码解释为相对应的汇编指令。 要想执行指令,首先得把CS:IP指向0000:0300。所以先用r命令查看寄存器的状态。再修改CS:IP的地址值,指向0000:0300。 完成以上步骤之后,就开始使用T命令了。前三条指令长度 阅读全文
posted @ 2018-10-28 16:00 Sgolden 阅读(174) 评论(2) 推荐(0) 编辑