欢迎来到天天文库
浏览记录
ID:57651586
大小:122.50 KB
页数:5页
时间:2020-08-30
《实验五--MOV、PUSH、POP及加法减法指令.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五MOV、PUSH、POP及加法减法指令[实验目的]:1.掌握MOV、PUSH、POP、XCHG及加法减法指令的用法及功能。[实验步骤]:一、MOV、PUSH、POP指令的用法及功能1.用DEBUG调试PUSH、POP指令①“MOV SP, 3210H”、“MOV AX, 1234H”和“PUSH AX”指令执行后,SP寄存器的值是_____________,ss:320e和320f存放的数据是_____________。②设SP初值为2000H,执行指令“push ax”后,SP的值是___
2、__。二、XCHG交换指令XCHG交换指令用来将源操作数和目的操作数内容交换例1:用交换指令实现寄存器之间的数据交换 (调试过程见下图,观察结果) movax,1234h;ax=1234hmovbx,5678h;bx=5678hxchgax,bx;ax=5678h,bx=1234h三、ADD加法指令ADD ADD将目的操作数+源操作数,结果送回目的操作数。 例3:加法运算(调试过程如上) ①moval,fbh;al=fbh ②addal,07h;al=02h
3、 ③movwordptr[200h],4652h;ds:[200h]=4652h ④movbx,1feh;bx=1feh ⑤addal,bl;al=00h ⑥addwordptr[bx+2],f0f0h;ds:[200h]=3742h1、先用A命令输入指令2、输入T运行第一条指令,AL的值变成FBH3、再输入T运行第二条指令,AL的值变成02H4、再输入T运行第三条指令,用D命令观察内存中ds:[200h]中存放的数据是不是4652H如上所示
4、:运行指令④后,观察寄存器BX的值是不是1feh 运行指令⑤后,观察寄存器AL的值是不是00h 运行指令⑥后,用D命令观察内存中ds:[200h]的值是不是3742h四、SUB减法指令SUB SUB将目的操作数--源操作数,结果送回目的操作数。 例4:减法运算 ①moval,fbh;al=fbh ②subal,07h;al=f4h ③movwordptr[200h],4652h;DS:[200h]=4652h
5、 ④movbx,1feh;bx=1feh ⑤subal,bl;al=f6h ⑥subwordptr[bx+2],f0f0h;DS:[200h]=5562h同加法指令调试过程:运行指令①后,观察寄存器AL的值是不是fbh 运行指令②后,观察寄存器AL的值是不是f4h 运行指令③后,用D命令观察内存中ds:[200h]的值是不是4652h运行指令④后,观察寄存器BX的值是不是1feh 运行指令⑤后,观察寄存器AL的值是不是f6h 运行指令⑥后,用D命令观察内
6、存中ds:[200h]的值是不是5562h五、NEG求补指令NEGNEG指令对操作数执行求补运算,即用零减去操作数,然后结果返回操作数。或者对操作数按位求反后加1 例5:求补运算 ①movax,ff64h;ax=ff64h ②negal;ax=ff9ch ③subal,9dh;ax=ffffh ④negax;ax=0001h ⑤decal;ax=0000h ⑥negax;ax=0000h同加
7、法指令调试过程:运行指令①后,观察寄存器AX的值是不是Ff64h 运行指令②后,观察寄存器AX的值是不是ff9ch 运行指令③后,观察寄存器AX的值是不是ffffh运行指令④后,观察寄存器AX的值是不是0001h 运行指令⑤后,观察寄存器AX的值是不是0000h 运行指令⑥后,观察寄存器AX的值是不是0000h六、调试课后第六题(P49)1、先把已知条件改成与课本上一致2、用A命令输入指令3、用T命令运行各条指令,运行第①条指令后,寄存器SP的值是____、SS是____。运行第②条指令后
8、,寄存器SP的值是____、SS是____。运行第③条指令后,寄存器SP的值是____、SS是____。
此文档下载收益归作者所有