鱼C论坛

 找回密码
 立即注册
查看: 3707|回复: 2

第十三章 13.3 int,iret和栈的深入理解 问题

[复制链接]
发表于 2011-4-3 06:58:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 sunjunjian 于 2011-4-3 19:07 编辑

程序一:
assume cs:code
code segment
start: mov ax,cs
       mov ds,ax
       mov si,offset do0
       mov cx,offset s2-offset do0      ;这里编译到debug中cx=1543h  气死我了
      
       mov ax,0
       mov es,ax
       mov di,200h
       cld
       rep movsb
      
       mov ax,0
       mov ds,ax
       mov word ptr ds:[7ch*4],200h
       mov word ptr ds:[7ch*4+2],0
       mov ax,4c00h
       int 21h
      
do0:    push bp
       mov bp,sp
       dec cx
       jcxz s3
       add [bp+2],bx
      
s3:    pop bp
       iret              
s2:    nop
code ends
end start
以上是安装的中断   下面是要运行的程序要用到上面中断



程序二:
assume cs:code
code segment
start: mov ax,0b800h
       mov ds,ax
       mov si,160*12
      
       mov bx,offset s-offset se     ;这里等于50h 好像也不对
       mov cx,80
s:    mov byte ptr ds:[si],'!'
       add si,2
       int 7ch
se:    nop
      
       mov ax,4c00h
       int 21h
code ends
end start            
在运行程序二时 运行到 int 7ch指令后 cs=0000 ip=0000      按道理因该是 cs=s的段地址 ip=s的偏移地址
也不知道问题到底出在哪了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-3 10:20:58 | 显示全部楼层
题目的要求是什么?提问的时候要把问题写清楚,不然来看的人不知道目标是什么,又怎么找问题所在呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2020-8-22 15:53:39 | 显示全部楼层
“这里编译到debug中cx=1543h  气死我了”前的分号要用英文格式。
“这里等于50h 好像也不对””前的分号要用英文格式。
截图未命名5.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 15:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表