精华内容
下载资源
问答
  • CMD 调用子程序&从子程序返回

    千次阅读 2017-09-09 12:49:25
    CMD 调用子程序&从子程序返回sample@echo off echo start:main echo into main call :sub echo back to main pause exit:sub echo into sub goto :eofoutputstart in main in to sub back to main 请按任意键继续. ....

    CMD 调用子程序&从子程序返回

    sample

    @echo off
    echo start
    
    :main
    echo into main
    call :sub
    echo back to main
    pause
    exit
    
    :sub
    echo into sub
    goto :eof

    output

    start
    into main
    into sub
    back to main
    请按任意键继续. . .
    展开全文
  • 程序中断和调用子程序有何区别

    万次阅读 多人点赞 2015-12-01 00:57:31
    1)调用子程序发生的时间是已知的和固定的,即在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的;而中断过程发生的时间一般是随机的,CPU在执行某一主程序时受到中断源...

    两者的根本区别表现在服务时间和服务对象上不一样。

    1)调用子程序发生的时间是已知的和固定的,即在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的;而中断过程发生的时间一般是随机的,CPU在执行某一主程序时受到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请时间是随机的。也可以说,调用子程序是程序设计者事先安排好的,而执行中断服务程序是由系统工作环境随机决定的。

    2)子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,两者是平行关系。

    3)主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。

    4)子程序嵌套可以实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级不会很大。


    从宏观上看,虽然程序中断方式克服了程序查询方式中CPU"踏步"现象,实现了CPU与IO并行工作,提高了CPU的资源利用率,但从微观操作分析,CPU在处理中断程序时,仍需暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器频繁地、成批地与主存交换信息时,需不断打断CPU执行现行程序,而执行中断服务程序。

    展开全文
  • 汇编语言--如何调用子程序

    万次阅读 2017-04-27 15:09:42
    最近刚学了汇编语言的子程序调用,刚开始有些迷惑,现在大概弄懂了...1:程序内部调用子程序  先看个例子: 编制一个子程序,求y=x^4,x为字节,y为字,且不会溢出 版本1:子程序的参数由寄存器bl提供,返回结果在ax中

      汇编语言的程序调用:

    1:程序内部标号调用

    我们来看一个例子:编制一个子程序,求y=x^4,x为字节,y为字,且不会溢出。

    1.1:子程序的参数由寄存器bl提供,返回结果在ax中。
      实现如下:
      
    assume cs:codesg, ss:stack
    stack segment
        db  32 dup (0)
    stack ends
    codesg segment
    main proc
    start: mov ax,stack
           mov ss,ax
           mov sp,16
           mov bl,08  ;为调用子程序准备参数
           call subp
           ;子程序调用返回后要做的处理
           mov ax,4c00h
           int 21h
    main endp
    ;强调:从现在始,定义子程序必须要有这样的文档
    ;子程序功能:求y=x^4
    ;入口参数:x的值由bl提供
    ;返回值:y值由ax返回,且y值不会超过1个字的范围
    subp proc
        push cx;子程序中使用的寄存器入栈
        mov bh,0;子程序内容
        mov dx,0
        mov ax,0
        mov al,bl
        mov cx,3
     s: mul bx
        loop s
        pop cx;子程序使用的寄存器出栈
        ret
    subp endp
    codesg ends
    end start
    
    
    解析:这个比较简单就不多讲了,看下面的。
    1.2:程序不变,主程序中提供如下数据区
    data segment
     x db 1,2,3,4,5,6,7,8
     y dw 0,0,0,0,0,0,0,0
    data ends
    子程序完成全部8个数据的求解任务,主程序只调用一次子程序即可。
    
    这个怎么实现?
    
    
    assume cs:codesg,ss:stack,ds:data
    data segment 
         x db 1,2,3,4,5,6,7,8
         y dw 0,0,0,0,0,0,0,0
    data ends
    stack segment
        db  32 dup (0)
    stack ends
    codesg segment
    main proc
    start: mov ax,stack
           mov ss,ax
           mov ax,data
           mov ds,ax
           mov sp,16
           mov si,0;
           mov di,8 ;为调用子程序准备参数
           call subp
           mov ax,4c00h  ;子程序调用返回后要做的处理
           int 21h
    main endp
    ;子程序功能:求y=x^4
    ;入口参数:x的值由bl提供
    ;返回值:y值由ax返回,且y值不会超过1个字的范围
    subp proc
        push cx;子程序中使用的寄存器入栈
        push bx
        mov bx,0;子程序内容
        mov cx,8
    s1: push cx
        mov dx,0
        mov ax,0
        mov bl,byte ptr [si]
        mov al,bl
        mov cx,3
     s: mul bx
        loop s
        pop cx;子程序使用的寄存器出栈
        mov word ptr [di],ax
        add di,2
        inc si
        loop s1
       pop cx
       pop bx
       ret
    subp endp
    codesg ends
    end start
    
    
    解析:主程序只是给出了地址的偏移量。我们要在子程序中实现。首先将要用到的寄存器的值保护起来,入栈,然后使用寄存器
    、干我们想干的事(毕竟寄存器在还是稀缺资源)。构建双重循环,一层实现数的遍历,一层要来求数的四次方,每次求完一个数,根据di将其写回内存中去。大体思路就是这样。
    
    

    2:程序外部如何调用?

    要求:将上面的程序2按多文件的方式存放。
    代码实现:
    子程序:


    ;子程序功能:求内存中偏移量为si的连续八个数的4次方
    ;然后将结果放在后面,每个结果数占用一个字
    ;入口参数:si di,si数的来源偏移量,di结果放置的偏移量
    ;返回值:返回 8个数的4次方,放在di指定的内存中masm
    public subp
    assume cs:code
    code segment
    start:
    subp proc
        push cx;子程序中使用的寄存器入栈
        mov bx,0;子程序内容
        mov cx,8;外层循环八次
    s1: push cx;外层循环量入栈
        mov dx,0
        mov ax,0;初始化将要用的寄存器
        mov bl,byte ptr [si];从内存取出数
        mov al,bl;放入ax,再连乘3次就是bl的4次方
        mov cx,3
     s: mul bx
        loop s
        pop cx;子程序使用的寄存器出栈
        mov word ptr [di],ax
        add di,2
        inc si
        loop s1
       pop cx;恢复,原来cx的值
       ret
    subp endp
    code ends
    end start


    主程序:

    extrn subp :far
    assume cs:codesg,ss:stack,ds:data
    data segment 
         x db 1,2,3,4,5,6,7,8
         y dw 0,0,0,0,0,0,0,0
    data ends
    stack segment
        db  32 dup (0)
    stack ends
    codesg segment
    main proc
    start: mov ax,stack
           mov ss,ax
           mov ax,data
           mov ds,ax
           mov sp,16
           mov si,0;
           mov di,8 ;为调用子程序准备参数
           call far ptr subp
           mov ax,4c00h  ;子程序调用返回后要做的处理
           int 21h
    main endp
    codesg ends
    end start


    解释:首先在子程序中有 public subp,表示程序中标号为subp的地方为公有的,类似于c++和java,其他程序可以调用。
    在主程序中有个 extrn subp:far,表示本程序要用到一个外部程序,入口地址在标号为subp处,经远转移可到达。
    编译的时候两个文件单独编译,link的时候 要 link 1.obj+2.obj 将两个文件link在一起,执行的时候只需执行1.exe。

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • 主程序调用子程序后,主程序暂停在调用点,子程序开始执行,直到子程序返回,主程序开始执行。 我们可以这么理解:父进程运行的程序,创建了子进程,此时父进程和进程并发执行,是两个进程;主程序调用子程序后,主...

    父进程创建子进程后,父进程与子进程同时执行(并发)。
    主程序调用子程序后,主程序暂停在调用点,子程序开始执行,直到子程序返回,主程序开始执行。
    我们可以这么理解:父进程运行的程序,创建了子进程,此时父进程和进程并发执行,是两个进程;主程序调用子程序后,主程序暂停,子程序开始执行,它们还是一个进程。

    展开全文
  • 2.调用子程序,是为主程序服务的,而中断程序与主程序的程序毫无关系; 3.子程序是由调用指令给出目标地址,中断是通过隐指令获得中断服务程序的入口地址     中断服务程序 调用子程 序随机产生的
  • 有这样一个程序,在main函数中通过调用子程序min,求出一数组中的最小元素值: #inlude int main() { int a[7] = {-1, 9, 7, 3, -100, 0, 8}; int minvalue; minvalue = min(a, 7); printf("minvalue = %d",...
  • 子程序测试 (传值给子程序测试) ' 执行“子程序测试“便会接收 变量内的值"10", .子程序 子程序测试 .参数 测试接收传值参数, 整数型, , 参数可接收 变量,以及全局变量 等用法 延时 (100) 处理事...
  • 调用子函数, 这样: &SUMDATA; 或 &SUMDATA($a, $b); 当然, 有些情况可以省略&号或括号: SUMDATA($a, $b); SUMDATA $a, $b (这种情况要前面先定义了才行) 函数的返回值: 在perl 中函数返回值为最后一条语句...
  • S7-200条件调用子程序

    千次阅读 2011-06-13 12:02:00
    即在扫描周期内该指令没被运行,其相关软元件保持初始状态。 即使子程序内使用 =指令接通Q,子程序调用条件不满足时,子程序不被主程序调用,Q将保持输出。所以子程序内的Q和M,需要初始和结束检查。
  • 调用子程序时不能使用括号

    千次阅读 2007-03-09 11:04:00
    调用子程序时不能使用括号 /www/study/treetest1.asp, 行105 www1(partid,chapterid) ----------------------^ 请问这个错误是为了什么,解者送分! vb的特点,错误信息已经很详细了嘛 调用过程(sub)时,有两种...
  • // 菜单栏响应函数 Cmydlg为自定义的对话框类(也就是要调用子程序对话框类) void CXXXXDlg::On32774() { // TODO: Add your command handler code here**** Cmydlg Fault1; Fault1.DoModal(); //这个...
  • 3月4日,根据需求,学习并掌握子程序、调用子程序。完成了一个创建N个新角色的某网页游戏脚本。并对程序结构进行调整,从初始的1200行优化为500行。   目前的一个未解决的需求,我打算有时间了去研究一下: ...
  • 错误类型:Microsoft VBScript 编译器错误 (0x800A0414)调用子程序时不能使用括号 一般情况下,这种错误出现在调用的过程没有返回值的情况。应该来说,就是调用参数赋值错误。出现这种错误,使用CALL 就是可以解决的...
  • ![图片说明]...我想调用一个编译好了的dataProcess程序,在dataProcess文件夹下 这样写对不?好像用exec()也是相似的结果。。。 各种权限应该没问题,都强行chmod 777了。。。谢谢各位大神~
  • 今天在处理电子电器交易网( ... )的安全问题。文件上传漏洞是asp网站之痛。在处理这个问题时,动用了双层机制: ...1、用户权限检查。...调用子程序时不能使用括号 如set("ab",90) 加上call后正常
  • 定义一个子程序:回车换行,主程序:从键盘接收一个字符串,调用子程序,继续从键盘接收一个字符,调用子程序,把输入的字符串用第二次输入的字符截断,显示截断后的结果。
  • python subprocess用于程序执行时调用子程序,通过stdout,stdin和stderr进行交互。 Stdout子程序执行结果返回,如文件、屏幕等 Stdin 子程序执行时的输入,如文件 Stderr错误输出python subprocess类似os的部分...
  • 中断调用子程序调用

    千次阅读 2017-04-19 09:46:11
    1、两过程定义与作用 子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和...一般微机首先执行主程序,碰到调用指令就转去执行子程序子程序执行完后,返回指令就返回主程
  • 子程序调用语句

    千次阅读 2014-11-14 14:47:30
    子程序调用语句 在进程中允许对子程序进行调用。从硬件的角度讲,一个子程序的调用类似于一个元件模块的例化,也就是说,VHDL综合器为子程序的每一次调用都生成一个电路逻辑块,所不同的是,元件的例化将产生...
  • python进程杀除及子程序调用

    千次阅读 2012-03-26 10:08:17
    1. 在python调用子程序进程时,有几种方式:  os.system(command)  os..execl(path)(查看帮助文档,里面有一系列的函数族,关于调用子程序的)  第一种情况下,调用子程序,父进程不会消失掉,当子进程结束时...
  • 用R语言调用Fortran子程序

    千次阅读 2017-01-08 14:52:24
    用R语言调用Fortran子程序
  • 中断调用子程序调用的异同

    千次阅读 2013-06-06 18:08:00
    1、两过程定义与作用 子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序...一般微机首先执行主程序,碰到调用指令就转去执行子程序子程序执行完后,返回指令就返回主程...
  • 子程序调用和中断指令

    千次阅读 2007-05-20 17:25:00
    子程序的调用及返回指令1.调用call dst;调用的时候ip或eip压栈将机器执行的当前值(即call指令的下一条指令的地址)压入堆栈以便子...该指令允许返回地址出栈后修改堆栈的指针,这便于调用子程序以前把子程序所需要的
  • 汇编语言——子程序调用

    千次阅读 2020-05-26 16:32:55
    主程序与子程序 调用语句CALL CALL指令分成4种类型 CALL子程序名 ;段内直接调用 CALL far ptr子程序名; 段间直接调用 不是很常用的 CALL r16 CALL WORD PTR m16;段内间接调用(IP发生改变...
  • 汇编语言(王爽)实验十 编写子程序

    万次阅读 多人点赞 2016-07-28 16:09:21
    编写子程序 作 者: XHS_12302 时 间: 链 接: 实验10编写子程序 在这次实验中,我们将要编写3个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法。同前面的所有实验一样,这个实验是必须要独立...
  • 题目: 实现计算 1+2+3...在 C 语言程序中调用汇编子程序,汇编子程序实现两个数的加法运算 在汇编程序中调用 C 语言子程序,C 语言子程序实现两个数的加法运算 一、 C 语言调用汇编子程序 C 语言主程序 #define ui...
  • 汇编语言-子程序调用

    千次阅读 2015-11-08 18:43:31
    汇编语言-子程序调用
  • 子程序调用和中断的几个概念

    千次阅读 2015-10-10 15:54:01
    主程序在执行过程中执行子程序,我们称之为子程序调用。  完成子程序调用/中断需要几个概念: 入口地址。程序是一组指令,第一条指令的地址称为程序的入口地址。 中断和断口地址。一个程序在执行的过程中去执行另一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 986,407
精华内容 394,562
关键字:

怎么调用子程序