我已将此代码写入emu8086。
当我按下模拟时,编译代码需要很长时间,编译时它的工作原理不正确。 (而不是跳到主它跳到最大功能等)emu8086 - 编译需要很长时间并且程序不起作用
而在你说可能有一个“magshimim.inc”的问题,没有,它在其他文件中的作品。
include magshimim.inc
org 100h
jmp main
;--------------------------------------------;
; Functions
;--------------------------------------------;
; This function gets 2 numbers and an address.
; It stores the biggest number in the address.
; Input:
; push result_address
; push num1
; push num2
PROC max
; store offset of parameters relative to bp
result_p equ 6
num1 equ 4
num2 equ 2
push bp ; store the previous stack frame
mov bp, sp ; create new stack frame
push ax ; store ax
mov ax, [bp+num1]
cmp ax, [bp+num2]
jng num1_bigger_num2
num1_bigger_num2:
mov ax, [bp+num1]
mov [[bp+result_p]], ax
jmp skip1
num1_not_bigger_num2:
mov ax, [bp+num2]
mov [[bp+result_p]], ax
skip1:
pop ax ; re-store ax
mov sp, bp ; close stack frame
pop bp ; re-store the previous stack frame
ret
ENDP
;--------------------------------------------;
; Global variables
;--------------------------------------------;
result dw 0
num0 dw 2
num1 dw 10
;--------------------------------------------;
; Main
;--------------------------------------------;
main:
push offset result
push num0
push num1
call max
add sp, 6
mov ax, result
call print_num
mov ah, 0
int 16h
ret
我刚刚在我的EMU中运行了您的代码,并且一旦启动就立即跳转到主代码。 –
我认为这是我的电脑的问题。 – tomgrin10
执行此操作:将程序“max”剪下并将其粘贴到最终“ret”下方。 –