sunjunjian 发表于 2011-4-3 06:58:21

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

本帖最后由 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:,200h
       mov word ptr ds:,0
       mov ax,4c00h
       int 21h
      
do0:    push bp
       mov bp,sp
       dec cx
       jcxz s3
       add ,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:,'!'
       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的偏移地址
也不知道问题到底出在哪了

china0008 发表于 2011-4-3 10:20:58

题目的要求是什么?提问的时候要把问题写清楚,不然来看的人不知道目标是什么,又怎么找问题所在呢?

sbx 发表于 2020-8-22 15:53:39

“这里编译到debug中cx=1543h气死我了”前的分号要用英文格式。
“这里等于50h 好像也不对””前的分号要用英文格式。
页: [1]
查看完整版本: 第十三章 13.3 int,iret和栈的深入理解 问题