概述
预备知识
使用汇编语言经典教材 王爽老师的《汇编语言第三版》 对汇编语言进行学习。
在装完DosBox环境之后,就可以用debug模式进行汇编指令的编程了。
下面我们看下在debug模式下常用的命令:
R命令:查看、改变CPU寄存器的内容;
D命令:查看内存中的内容;
E命令:改写内存中的内容;
U命令:将内存中的机器指令翻译成汇编指令;
T命令:执行一条机器指令;
A命令:以汇编指针的格式在内存中写入一条机器指令
题目介绍
在了解这些常用命令之后,我们做道题,是教材上的。
使用下面3条指令写入2000:0开始的内存单元中,利用这3条指令计算2的8次方。
mov ax,1
add ax,ax
jmp 2000:0003
回答问题
逻辑思路:
执行完第一步后ax= 1;
执行完第二步后ax = 2;
执行add 1次 2*2, 执行2次 就是2*2*2就是2的3次方 ,那么2的8次方 就 add 执行 7次。
执行之前先将指令指向add语句 这样就会重复执行 add语句,用jmp 指令更改CS、IP寄存器的值,从而
控制CPU执行目标指令。
下面看下 代码:
敲完之后,就可执行我们写的汇编指令了,我们要先使用r指令改变 cs 和ip的指向, cs和ip是8086CPU中
2个最关键的寄存器,他们指示了CPU当前要读取指令的地址。cs为代码段寄存器ip为指针寄存器。
在任意时刻,CPU将cs:ip指向的内容当做指令执行。
r cs
2000
r ip
0
现在我们就可用t指令来执行我们的汇编指令了。
思考执行命令t的执行次数?
执行 第一二步执行需 2个t,那么执行第三步的t的时候实际上只是改变cs:ip的指向并没执行cs:ip指向内容的机器指令,后面的7个jmp 每个需要执行2个t才能执行add方法!
所以共需要执行t 16次才能计算出2的8次方。
最后
以上就是简单钢铁侠为你收集整理的汇编指令:使用汇编指令计算2的8次方预备知识题目介绍回答问题的全部内容,希望文章能够帮你解决汇编指令:使用汇编指令计算2的8次方预备知识题目介绍回答问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复