| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
编程实现: 
 
DATA SEGMENT 
 
 A DB 12H,34H,56H,78H 
 
 B DB 12H,34H,56H,78H 
 
 C DB 06H,07H,08H,09H 
 
 D DB ?,?,?,? 
 
 E DB 3 
 
DATA ENDS 
 
如果(E>0):求D=A+B+C(多字节运算) 
 
否则:求D=A+B-C(多字节运算)(按高高低低的原则存储) 
这个怎么做呀?
- ASSUME DS:DATA , CS:CODE
 
  
- DATA SEGMENT
 
  
-     A DB 12H,34H,56H,78H
 
 -     B DB 12H,34H,56H,78H
 
 -     C DB 06H,07H,08H,09H
 
 -     D DB ?,?,?,?
 
 -     E DB 3
 
  
- DATA ENDS
 
  
- STACK SEGMENT STACK
 
 -       DB 400H DUP(0)
 
 - STACK ENDS
 
  
- CODE SEGMENT
 
 - MAIN PROC FAR
 
 -       MOV AX,DATA
 
 -       MOV DS,AX
 
 -       LEA SI,A
 
 -       MOV CX,4
 
 - LP01: PUSH CX
 
 -       MOV AL,BYTE PTR[SI]       ; 读取1个 A
 
 -       MOV BL,BYTE PTR[SI+4]     ; 读取1个 B
 
 -       MOV DL,BYTE PTR[SI+8]     ; 读取1个 C
 
 -       ADD AL,BL                 ; 先计算 A+B
 
 -       CMP BYTE PTR[E],0         ; E > 0 ?
 
 -       JA LP02                   ; Yes - Jump
 
 -       SUB AL,DL                 ; E <= 0 计算 D=A+B-C
 
 -       JMP SHORT LP03
 
 - LP02: ADD AL,DL                 ; E > 0  计算 D=A+B+C
 
 - LP03: MOV BYTE PTR[SI+12],AL    ; 保存 D
 
 -       INC SI
 
 -       POP CX
 
 -       LOOP LP01
 
 -       MOV AX,4C00H
 
 -       INT 21H
 
 - MAIN ENDP
 
 - CODE ENDS
 
 - END MAIN
 
  复制代码 
 
 
 |   
 
 
 
 |