first commit
This commit is contained in:
37
Lab/Lab1/material/2.asm
Executable file
37
Lab/Lab1/material/2.asm
Executable file
@@ -0,0 +1,37 @@
|
||||
DSEG SEGMENT
|
||||
XXX DW 1234H
|
||||
YYY DW 5678H
|
||||
ZZZ DD ?
|
||||
DSEG ENDS
|
||||
|
||||
CSEG SEGMENT
|
||||
ASSUME CS:CSEG, DS:DSEG
|
||||
START:
|
||||
MOV AX, DSEG
|
||||
MOV DS, AX
|
||||
|
||||
MOV AX, XXX ; 将XXX赋给AX
|
||||
XOR DX, DX ; 异或DX和DX,即将DX置0
|
||||
|
||||
ADD AX, AX ; AX *= 2, AX = 2 * XXX
|
||||
ADC DX, 0 ; 把进位保存在DX中
|
||||
|
||||
ADD AX, AX ; AX *= 2, AX = 4 * XXX
|
||||
ADC DX, 0 ; 更新DX中的进位信息
|
||||
|
||||
ADD AX, AX ; AX *= 2, AX = 8 * XXX
|
||||
ADC DX, 0 ; 更新DX中的进位信息
|
||||
|
||||
ADD AX, AX ; AX *= 2, AX = 16 * XXX
|
||||
ADC DX, 0 ; 更新DX中的进位信息
|
||||
|
||||
ADD AX, YYY ; AX += YYY, AX = 16 * XXX + YYY
|
||||
ADC DX, 0 ; 更新DX中的进位信息
|
||||
|
||||
MOV WORD PTR ZZZ, AX ; ZZZ的低位 = AX = 16 * XXX + YYY
|
||||
MOV WORD PTR ZZZ+2, DX ; ZZZ的高位 = DX = 进位数, ZZZ = 16 * XXX + YYY(完整)
|
||||
|
||||
MOV AH, 4CH
|
||||
INT 21H
|
||||
CSEG ENDS
|
||||
END START
|
||||
Reference in New Issue
Block a user