Last active
May 13, 2019 07:08
-
-
Save weirongxu/8065586 to your computer and use it in GitHub Desktop.
test1.asm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; #!/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