dfsgfdhgdyjfhg 发表于 2013-5-9 14:45:12

一个汇编题,代码有些不懂,求指点

编写程序,把ARRAY1和ARRAY2中20个字节数分别相加,结果放到TABLE中。(1)假定数据为无符号数,如果结果大于255则结果为255.DATA SEGMENT
                     ARRAY1 DB 20 DUP(?)
                     ARRAY2 DB 20 DUP(?)
                                       TABLEDB 20 DUP(?)
                  DATA ENDS
                  CODE SEGMENT
                      ASSUME CS:CODE,DS:DATA
                START:MOV AX,DATA
                      MOV DS,AX
                      MOV CX,20
                      MOV SI,0
                AGAIN:MOV AL,ARRAY1
                      ADD AL,ARRAY2
                      JCLABEL1
                      MOV TABLE,AL
                      JMP LABEL2
               LABEL1:MOV TABLE,255
               LABEL2:INC SI
                      LOOP AGAIN
                      MOV AH,4CH
                      INT 21H
                  CODE ENDS
                      END START
有条指令JC LABEL1不明白为什么要这一条?求解

dfsgfdhgdyjfhg 发表于 2013-5-9 14:51:25

soga,看了许久没明白,原来题目理解错了.....

monk-half 发表于 2013-5-9 15:37:02

JC == jmp if carry    //如果进位 则跳转   
前面一个语句 ADD AL,ARRAY2可能超过255根据题目要求出现这种情况的话应当将值设置为255
(MOV TABLE,255)

gb1984321 发表于 2013-5-11 13:10:24

无回帖,不论坛,这才是人道。

dfsgfdhgdyjfhg 发表于 2013-5-12 22:20:36

monk-half 发表于 2013-5-9 15:37 static/image/common/back.gif
JC == jmp if carry    //如果进位 则跳转   
前面一个语句 ADD AL,ARRAY2可能超过255根据题目要求 ...

嗯,之前题目理解错了,所以一直搞不明白..现在明白了...
页: [1]
查看完整版本: 一个汇编题,代码有些不懂,求指点