目录 上一页 下一页 下一章

-86- PC机汇编语言实战精解

-g=1e 2b
AX=0944BX=0013CX=0000DX=0000SP=FFFCBP=0000SI=0000DI=0000
DS=1031ES=1021SS=1031CS=1033IP=002B NV UP EI PL NZ NA PO NC
1033:002BC20200RET 0002
  带参数的RET指令可以自动修改SP寄存器,如果在这里简单的使用不带参数的RET指令,则这个子程序返回后SP应该等于"0FFFEH",RET指令加上参数之后,SP寄存器就会被修改为0000,等于以前压入的参数自动出栈。
-t注意SP寄存器的变化
AX=0944BX=0013CX=0000DX=0000SP=0000BP=0000SI=0000DI=0000
DS=1031ES=1021SS=1031CS=1033IP=0010 NV UP EI PL NZ NA PO NC
1033:0010B409MOV AH,09
g=10
WELCOME TO PC WORLD← 转换后的字符串
Program terminated normally
  下面这个程序也是一个有关如何应用BP寄存器实例,这个程序示例揭示了BP寄存器的又一用途--动态分配内存。
CALC.ASM
CR
LF
data

mess
ascii
data

code

main










equ
equ
segment
assume
db 'welco
db '01234
ends

segment
assume
proc
mov
mov

mov
push
mov
call
call
mov

0dh
0ah

ds:data
me to pc world',0dh,0ah,24h
56789abcdef'



cs:code
far
ax,data
ds,ax

dx,offset mess
dx
bx,offset ascii
calc
hexout
ah,4ch

;回车符的ASCII码
;换行符的ASCII码


;定义一个小写字符串
;十六进制的数字





;设置数据段寄存器


;DX寄存器指向字符串首
;字符串首地址压入堆栈
;BX寄存器指向ASCII表
;调用CALC子过程计算字符数
;调用HEXOUT子过程输出字符数
;结束进程

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章