一、实验目的
掌握8086指令的应用
二、实验原理
三、实验仪器
计算机1台,emu8086软件。
四、实验步骤
1、建立00H~0FH~00H 31个数,00H~0FH数据逐渐增大,0FH~00H逐渐减小,即DI指针所表示的地址中依次填入00H~0FH~00H 31个数,编写程序完成
步骤如下:
(1)如图,输入如下指令:
(2)点击“模拟”按钮后内存中的结果。
(3)点击“单步运行”,观察程序执行过程中的各个结果。特别是寄存器中值的变化,执行程序前后它们的值的变化(颜色的变化就是值的变化)。
(4)最后程序结果。寄存器中值的变化。
内存中值的情况:
(2)点击“模拟”按钮后内存中的结果。
(3)点击“单步运行”,观察程序执行过程中的各个结果。特别是寄存器中值的变化,执行程序前后它们的值的变化(颜色的变化就是值的变化)。
变化前:
变化后:
(4)最后程序结果。寄存器中值的变化。
内存中值的情况:
实验反思:程序中的CX的值,在程序中的作用是什么?CLD和STD指令的作用?
"CX"通常在汇编语言(x86体系)中是一个16位或32位的寄存器,用于存放循环计数器。在循环结构如rep指令中,CX被用来跟踪重复操作的次数。它的作用是在循环内执行特定指令的次数,直到CX值减为零。
"CX"的值在循环控制、内存访问等场合非常重要,因为它直接影响到代码的执行流程。
“C”(即Character,字符)在某些编程上下文中可能表示字符类型的变量,但这个上下文与汇编中的CX有所不同,它指的是单个的字符数据而不是循环变量。
“CLD”(Clear Direction Flag)和"STD"(Set Direction Flag)是Intel x86指令集中的两条控制指令。CLD指令用于清除方向标志(DF),这是一个标志位,通常在处理字符串操作时使用,以决定字节数据是按从低地址到高地址(正向)还是高地址到低地址(反向)读取。当DF被清除时,默认为正向。而STD指令则是设置方向标志,恢复DF为正向。