|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
复制代码
|
|