MOV CX,9 MOV AL,01H MOV SI,1000H NEXT: MOV [SI],AL INC SI SH

问题描述:

MOV CX,9 MOV AL,01H MOV SI,1000H NEXT: MOV [SI],AL INC SI SHL AL,1 LOOP NEXT
问:
1、执行本程序后有:AL=_____;SI=______;CX=______;
2、本程序的功能是______________________________.
1个回答 分类:综合 2014-10-18

问题解答:

我来补答
1、执行本程序后有:AL=0;SI=1009;CX=0;
2、本程序的功能是:每次将al乘2,传送给si所指向的内存单元.
程序注释:
MOV CX,9 ;设置循环次数
MOV AL,01H ;将01送给al寄存器
MOV SI,1000H;将1000h送给si寄存器
NEXT:MOV [SI],AL ;循环的入口点 将al的值送给si的内容所指向的偏移地址
INC SI ;将si内容加一
SHL AL,1 ;逻辑左移一位,作用是将al的值乘2
LOOP NEXT ;循环到next标号处,直到cx=0停止
每一次循环的结果:
0000 0010 位移1次 si所指向偏移地址内容是 2 ,并且 al内容也是2
0000 0100 位移2次 si所指向偏移地址内容是 4 ,并且 al内容也是4
0000 1000 位移3次 si所指向偏移地址内容是 8 ,并且 al内容也是8
0001 0000 位移4次 si所指向偏移地址内容是 16 ,并且 al内容也是16
0010 0000 位移5次 si所指向偏移地址内容是 32 ,并且 al内容也是32
0100 0000 位移6次 si所指向偏移地址内容是 64 ,并且 al内容也是64
1000 0000 位移7次 si所指向偏移地址内容是 128 ,并且 al内容也是128
000 00000 位移8次 si所指向偏移地址内容是 0 ,并且 al内容也是0
000 00000 位移9次 si所指向偏移地址内容是 0 ,并且 al内容也是0
 
 
展开全文阅读
剩余:2000