摘要:
一 多个段 1.dw的含义是定义字型数据 2.在程序的第一条指令的前面加上了一个标号start,而这个标号在伪指令end的后面出现。end除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方。 3.在程序中,段名就相当于一个标号,它代表了段地址。所以指令mov ax,data,的含义就是将 阅读全文
摘要:
一 .[bx] 1. mov ax,[bx] bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。 2. mov [bx],ax bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。 3. inc bx 其表示的 阅读全文
摘要:
一: 补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数 1 因为我们知道第一段的db中只含有一个数字12,所以其只占即ds:[0]的位置,而我们需要的是将商保存后面字节的位置 2我们需要add dl 48是因为数字与数字符号之间的ASCII码差值为48 之后我们再查看其中的结果: 我们 阅读全文
摘要:
一:对要求的程序进行编译,连接,用debug加载,跟踪,然后回答问题。 将相关的工作做好以后: 1) 在程序返回前,我们用d命令查找data数据 发现其中的值并没有发生改变 2)在程序返回前我们可以发现,cs=076C ,ss=076B,ds=075A 3) 该程序加载后,code段的段地址为X,则 阅读全文
摘要:
任务1: 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H。 我们可以看到确实是得到了我们想要的结果 下面我们按着要求 再对代码进行些改动: 将源代码程序中字数据0403H→修改为0441H,再次运行,截图显示运行结 阅读全文
摘要:
练习1: 1)编写一段代码: 2)对源程序 t1.asm 进行汇编、连接、运行、调试 : 我们发现输出的结果是36 3)之后我们改变一下,将line4的dl变为2,line9的dl变为3.让后让我们来看看结果会是什么样的: 我们可以发现输出的值为23,看来我们的改动还是比较有效果的 4)接着我们用d 阅读全文
摘要:
实验: 1)使用debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际情况来填空。 ① 在使用 a 命令输入指令调试前,使用 e 命令将内存单元 0021:0 ~0021:7 连续 8 个字节数据修改为 30H, 31H, 32H, 33H,34H,35H,36H,37H ② 将 P74 阅读全文
摘要:
3.1 内存中字的存储: 在内存存储时,由于内存单元是字节单元(一个单元存放一个字节),所以一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节则会存放在高地址的单元中。 字单元,即存放一个字型数据的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据 阅读全文
摘要:
对于一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变寄存器里的内容来实现对CPU的控制。 一:寄存器的相关总结 1: 8086CPU的所有寄存器都是16位的,可以存放2个字节。其中8086CPU中的AX BX CX DX这4个寄存器都可以分为 阅读全文
摘要:
一:实验任务 1:debug的使用 1:用E命令执行的效果: 2:用A命令执行的效果: 我们发现如果用A命令来执行那么就会非常的直观,便于我们理解每一步的过程。 2 :将下面的三条语句写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方 mov ax,1 add ax,ax jmp 20 阅读全文