那位高手能会汇编语言

来源:百度知道 编辑:UC知道 时间:2024/06/28 00:05:18
.MODEL SMALL
.586
.DATA
DATAS DW 1234H,5678H,9ABCH,0DEFH,
DW 5555H,6666H,7777H,8888H,
DW 9999H,0AAAAH
RESULT DD 1 DUP(?)
.CODE
.STARTUP
MOV SI,OFFSET DATAS;设指针
MOV CX,10;累加次数
MOV EAX,0;清累加器
CLC ;清进位
LOP: MOV BX,[SI] ;取加数到BX
MOVZX EBX,BX ;将BX扩展成32位
ADC EAX,EBX ;带进位加
INC SI ;改指针
INC SI
LOOP LOP
MOV RESULT,EAX; NOP
.EXIT
END
两个和一个INC SI时bx值不同,为什么?
能说的详细点,本人初学比较菜?

INC SI意思是SI寄存器的值加上1,再送回SI中;
如内存中偏移DS:0150处有如下数:
23 41 67 38 0 0 0 ... ...
置SI: MOV SI,0150H
inc si/mov bx,[si] 则SI=0151H,BX=6741H
inc si/inc si/mov bx,[si] 则SI=0152H, BX=3867H

INC SI是SI自增1