用串操作指令实现将内存定义好的两个字节串BUF1和BUF2相加后,存放到另一个串BUF3中的功能。
MOVCX,COUNTMOVSI,OFFSETBUF1MOVDI,OFFSETBUF3MOVBX,OFFSETBUF2AGAIN:LODSBADDAL,[BX]STOSB...
MOV CX,COUNT
MOV SI,OFFSET BUF1
MOV DI,OFFSET BUF3
MOV BX,OFFSET BUF2
AGAIN:LODSB
ADD AL,[BX]
STOSB
INC BX
DEC CX
JNZ AGAIN
哪位高手能解释下每步都是干嘛的
谢谢 展开
MOV SI,OFFSET BUF1
MOV DI,OFFSET BUF3
MOV BX,OFFSET BUF2
AGAIN:LODSB
ADD AL,[BX]
STOSB
INC BX
DEC CX
JNZ AGAIN
哪位高手能解释下每步都是干嘛的
谢谢 展开
1个回答
2013-07-30
展开全部
MOV CX,COUNT cx存放count地址
MOV SI,OFFSET BUF1 计算出BUF1地址存入SI
MOV DI,OFFSET BUF3 计算出BUF2地址存入di
MOV BX,OFFSET BUF2 计算出BUF3地址存入bx
AGAIN:LODSB 是将 ds:[si] 处的字节送到 AL 中, si 将随 DF 的设置 '
增 1'(DF=0,使用 CLD 指令设置) 或者是 '减 1'(DF=1,
使用 STD 指令设置) 而指向下一个字节
ADD AL,[BX] 将地址[BX]中的数值与al相加
INC BX bx加1
DEC CX 计数器cx减1
JNZ AGAIN cx非0则循环跳转到标号AGAIN 处继续,如果cx为0则跳出循环
MOV SI,OFFSET BUF1 计算出BUF1地址存入SI
MOV DI,OFFSET BUF3 计算出BUF2地址存入di
MOV BX,OFFSET BUF2 计算出BUF3地址存入bx
AGAIN:LODSB 是将 ds:[si] 处的字节送到 AL 中, si 将随 DF 的设置 '
增 1'(DF=0,使用 CLD 指令设置) 或者是 '减 1'(DF=1,
使用 STD 指令设置) 而指向下一个字节
ADD AL,[BX] 将地址[BX]中的数值与al相加
INC BX bx加1
DEC CX 计数器cx减1
JNZ AGAIN cx非0则循环跳转到标号AGAIN 处继续,如果cx为0则跳出循环
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询