Skip to content

Instantly share code, notes, and snippets.

@weirongxu
Last active May 13, 2019 07:08
Show Gist options
  • Save weirongxu/8065586 to your computer and use it in GitHub Desktop.
Save weirongxu/8065586 to your computer and use it in GitHub Desktop.
test1.asm
; #!/usr/bin/python
; x = 2
; y = 5
; fun = 6*(x-y)*(5*(x+y)-15)/28
; print(hex(fun))
; 设置数据段
DATA SEGMENT
X DB 2 ;变量X
Y DB 5 ;变量Y
A DB 28
FUN DB ?
DATA ENDS
; 设置堆栈段
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
; 设置代码段
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START:
MOV AX,DATA
MOV DS,AX
MOV BL, X
SUB BL, Y
; BX = X - Y
MOV AL, BL ; AL = BL (AL == 1BL)
SAL AL, 1 ; AL *= 2 (AL == 2BL)
ADD AL, BL ; AL += BL (AL == 3BL)
SAL AL, 1 ; AL *= 2 (AL == 6BL)
; AX = BX * 6
MOV DL, AL
MOV BL, X
ADD BL, Y
; BX = X + Y
MOV AL, BL ; AL = BL (AL == 1BL)
SAL AL, 1 ; AL *= 2 (AL == 2BL)
SAL AL, 1 ; AL *= 2 (AL == 4BL)
ADD AL, BL ; AL += BL (AL == 5BL)
; AX = BX * 5
SUB AL, 15
; AX -= 15
IMUL DL
; AX = AL * DL
IDIV A
; AL = AX / 28
MOV FUN, AL
; FUN = AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment