请教MASM中的输出问题

cyy219 2008-05-18 07:08:11
data segment
n db 4
result dw ?
data ends

stack segment para stack 'stack'
dw 100 dup(?)
stack ends

code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
xor ax,ax
mov al,n
call fac
mov result,dx
mov ah,4ch
int 21h


;子程序名fac
;功能:计算n!
;入口参数:(ax)=n
;出口参数:(dx)=n!

fac proc
cmp ax,0 ;n为0?
jne next
mov dx,1
ret
next:
push ax
dec ax ;否,则n-1
call fac ;求(n-1)!
back:
pop ax
mul dx ;n*(n-1)!
mov dx,ax ;因为结果为字,故双字(dx,ax)中dx=0
ret
fac endp
code ends
end start

想问一下:
1、我用debug命令:d 100 为什么看不到result中的结果的?(用masm5编译的)
2、如何在屏幕中输出result的结果?尝试过用int 21h 的02号功能,但输出的是一个笑脸
...全文
252 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hot_baby 2008-05-20
  • 打赏
  • 举报
回复
我想问一下,为什么要g 0b77:0011 后再用d命令看呢?进入debug后立刻用r命令看ds的地址,然后用d命令为什么不行,
这样得到的ds的地址和g 0b77:0011 后得到的ds的地址都不相同呢?
===============
一个程序加载到内存的过程:
1.找到一段其实地址为SA:0 容量足够的空闲地址内存区
2. 在这段内存区前256个字节创建一个程序段的前缀(PSP),用来和操作系统进行通信。
3.从这段内存区的256字节处(PSP后面)将程序装入,即程序的地址为 SA+10H:0
4.将该内存区的段地址存入DS总,初始化其它相关寄存器后,设置CS:IP指向程序的入口。

理解了程序加载过程后,楼主的问题就很好理解了。

摘自:王爽<汇编语言> P86 第一个程序

==========================
汇编语言学习支持网 www.asmedu.net
cnzdgs 2008-05-18
  • 打赏
  • 举报
回复
exe程序加载时ds是指向PSP的,所以你的代码中才需要
mov ax,data
mov ds,ax
g之后ds已经赋值为data了,所以可以。
cyy219 2008-05-18
  • 打赏
  • 举报
回复
我想问一下,为什么要g 0b77:0011 后再用d命令看呢?进入debug后立刻用r命令看ds的地址,然后用d命令为什么不行,这样得到的ds的地址和g 0b77:0011 后得到的ds的地址都不相同呢?
dongyi940333 2008-05-18
  • 打赏
  • 举报
回复
2、如何在屏幕中输出result的结果?

参见:

http://topic.csdn.net/t/20031212/16/2557673.html
prstat 2008-05-18
  • 打赏
  • 举报
回复

汇编里在屏幕显示只有两种方法:
1、调用BIOS中断(DOS中断也可以)
2、直接写显存,起始地址是0B800H吧

具体查一下相关资料吧
dongyi940333 2008-05-18
  • 打赏
  • 举报
回复
如图:



十六进制的18(十进制的24)就是结果
hswxf 2008-05-18
  • 打赏
  • 举报
回复
-D DS:4的内容,打错了
hswxf 2008-05-18
  • 打赏
  • 举报
回复
1 -D只是看到从CS:100的内容,原则上跟踪中可以发现的,你应该看的是-D DS:0处的内容,应该是可以发现的
2 result要二-->十进制转换
zara 2008-05-18
  • 打赏
  • 举报
回复
结果在 result 中, 一般是 d 1 l 2 来查看吧.

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧