R、D、E、U、T、A命令

R命令:查看、修改CPU中寄存器的内容

查看
R、D、E、U、T、A命令_第1张图片

D命令:查看内存中的内容

使用d 段地址:偏移地址的格式,将从列出从指定内存单元开始的128个内存单元的内容
R、D、E、U、T、A命令_第2张图片
左边是每行开头的地址,第一行是内存1000:0 ~ 1000:F中的内容;第二行是1000:10 ~ 1000:1f的内容,以此类推
每行中间的-符号用于方便定位,-前面是0 ~ 7,后面是8 ~ F。
右边是每个内存单元中的数据对应的可显示的ASCII码字符,比如下图中1000:0010、1000:0011、1000:0012存放的数据分别是43H、44H、45H,对应的ASCII字符分别是"C"、“D”、“E”。没有对应可显示的ASCII字符,就用"."代替。R、D、E、U、T、A命令_第3张图片
格式d 段地址:起始偏移地址 结尾偏移地址可以指定D命令的查看范围
在这里插入图片描述
也可以只看一个单元的内容(以下三种都表示了10000H这一物理地址)
R、D、E、U、T、A命令_第4张图片

E命令:修改内存中的内容

在这里插入图片描述
也可以一个一个修改
R、D、E、U、T、A命令_第5张图片
输入e 1000:0后显示10000H的起始内容42,然后光标停在.后面,这时如果想修改则输入数据然后按空格,不想修改直接按空格。最后按Enter表示E命令结束。
也可以直接写入字符
在这里插入图片描述

U命令:将内存中的内容解释为机器指令和对应的汇编指令

我们可以先用E命令将机器码写入内存

b80100  mov ax,0001
b90200  mov cx,0002
01c8    add ax,cx

然后用u指令将内存单元中的内容翻译为汇编指令,并显示出来。
R、D、E、U、T、A命令_第6张图片

T命令:执行CS:IP指向的内存单元处的指令

之前e已经写好了三个指令,存在从1000:0开始的内存单元中。这时用r指令看看cpu中寄存器的状态
R、D、E、U、T、A命令_第7张图片
这时候CS=073F,IP=0100。但若要用t命令执行我们写到1000:0的指令,必须让CS:IP指向1000:0,所以要用r命令修改CS、IP的内容。
R、D、E、U、T、A命令_第8张图片
这时可以开始执行了
R、D、E、U、T、A命令_第9张图片
这里第一次执行后ax中的内容被改为1,IP改为IP+3(因为mov ax,0001的指令长度为3个字节),CS:IP指向下一条指令

A命令:以汇编指令的形式向内存中写入指令

从1000:0开始的内存单元中写入几条指令
R、D、E、U、T、A命令_第10张图片
只用一个a会从预设的地址开始输入指令
在这里插入图片描述
注:实验任务中(4)向内存从B8100H开始的单元中填写数据会发现数据无法修改,回到1.15章发现向地址C0000 ~ FFFFF的内存单元中写入数据的操作是无效的,因为在8086中这段为ROM(只读存储器)的地址空间

你可能感兴趣的:(#,汇编语言(王爽))