. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
主题 : :  疑点求助  [待解决] 回复[ 3次 ]   点击[ 536次 ]  
huangfei777528
[帖 主] [ 发表时间:2008-05-01 14:24 ] 
荣誉值:0
信誉值:0
注册日期:2008-03-21 20:00
书中p245处的7ch中断例程不明白:
其要求在屏幕中间显示80个‘!’程序如下
assume cs:code
code segment
  start:mov ax,0b800h
        mov es,ax
        mov di,160*12
        mov bx,offset s-offset se
        mov cx,80
    s:  mov byte ptr es:[di],'!'
        add di,2
        int 7ch
    se: nop
        mov ax,4c00h
        int 21h
code ends
end start

7ch:
    lp: push bp
       mov bp,sp
       dec cx
       jcxz lpret
       add [bp+2],bx
  lpret:pop bp
        iret
我的问题是:1、add di,2中di 为什么要加2呀?
            2、为什么是add [bp+2],bx而不是sub [bp+2],bx 我觉得应该减才对呀
            3、bp与sp的用途是一样吗? bp的初始值是多少呀,为什么要入栈?
学习ing,遇到不少麻烦,还请各位大侠帮忙解决,也祝各位大侠节日快乐!!!!
huangfei777528
[第2楼] [ 回复时间:2008-05-02 22:29 ] 
荣誉值:0
信誉值:0
注册日期:2008-03-21 20:00
younggay说的一点不错,我是没有编写一个程序,都是自己看别人的程序,谢谢你提醒,以后我会注意的!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved