急急急~星研软件汇编语言编程!正确的给+100分!!

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:22:54
设在变量x,y,z中存放有三个数,若三个数都不为0,则求出三个数之和存入u中;若有一个为0,则将其它两个单元也清零。
最好有旁注的!! 微机设计!!

设x,y,z,u分别存放于40H,41H,42H,43H单元。
KKK0:CLR C;清进位位
MOV A,40H;取X
JZ KKK;X=0转到KKK
MOV B,A;X不为0则保存到B
MOV A,41H;取Y
JZ KKK;;Y=0转到KKK
ADD A,B;X不为0则加上X后入A
MOV B,A;X+Y保存到B
MOV A,42H;取Z
JZ KKK;;z=0转到KKK
ADDC A,B;z不为0则加上X+Y后入A
MOV 43H,A;X+Y+Z存入U
SJMP KKK1;转KKK1
KKK:MOV 40H,#0;清零40H
MOV 41H,#0;清零41H
MOV 42H,#0;清零42H
KKK1:RET;返回

设x,y,z,u分别存放于40H,41H,42H,43H单元。
KKK0:CLR C;清进位位
MOV A,40H;取X
JZ KKK;X=0转到KKK
MOV B,A;X不为0则保存到B
MOV A,41H;取Y
JZ KKK;;Y=0转到KKK
ADD A,B;X不为0则加上X后入A
MOV B,A;X+Y保存到B
MOV A,42H;取Z
JZ KKK;;z=0转到KKK
ADDC A,B;z不为0则加上X+Y后入A
SWAP AB
CLR A
RLC A
ADD A,B
MOV 43H,A;X+Y+Z存入U
SJMP KKK1;转KKK1
KKK:MOV 40H,#0;清零40H
MOV 41H,#0;清零41H
MOV 42H,#0;清零42H
KKK1:RET;返回

.if x or y or z
xor eax,eax
add eax,x
add eax,y
add eax,z
mov u,eax
.else