call 和 ret 的配合使用(1002)

来源:互联网 发布:hec hms软件说明书 编辑:程序博客网 时间:2024/04/28 19:37

本文为《汇编语言程序设计》1002小节例程。点击链接…进课程主页。

功能:计算2的N次方,计算前,N的值由CX提供。

;(下面的程序逻辑上正确,但存在严重错误!)assume cs:codecode segmentstart: mov ax,1       mov cx,3       call s       mov bx,ax        mov ax,4c00h       int 21h    s: add ax,ax       loop s       retcode endsend start

下面是正确的程序

; 要设置栈段,以便于call和ret指令使用assume cs:code, ss:stackstack segment       db  8 dup (0)       db  8 dup (0)stack endscode segmentstart: mov ax,stack              mov ss,ax       mov sp,16       mov ax,1000       call s        mov ax,4c00h       int 21h     s: add ax,ax        retcode endsend start
0 0