精华内容
下载资源
问答
  • 汇编语言(王爽)实验十 编写子程序

    万次阅读 多人点赞 2016-07-28 16:09:21
    编写子程序 作 者: XHS_12302 时 间: 链 接: 实验10编写子程序 在这次实验中,我们将要编写3个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法。同前面的所有实验一样,这个实验是必须要独立...

    标 题: 汇编实验10—— 编写子程序
    作 者: XHS_12302
    时 间: 2016_7_28 16:56

     

     

     

     

     

    实验10编写子程序


      在这次实验中,我们将要编写3个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法。同前面的所有实验一样,这个实验是必须要独立完成的,在后面的课程中,将要用到这个实验中编写的3个子程序。
    1.  显示字符串
    问题
    显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能。我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行、列)、内容和颜色。

    提示
    (1)  子程序的入口参数是屏幕上的行号和列号,注意在子程序内部要将它们转化为显存中的地址,首先要分析一下屏幕上的行列位置和显存地址的对应关系:
    (2)  注意保存子程序中用到的相关寄存器:
    (3)  这个子程序的内部处理和显存的结构密切相关,但是向外提供了与显存结构无关的接口。通过调用这个子程序,进行字符串的显示时可以不必了解显存的结构,为编程提供了方便。在实验中,注意体会这种设计思想。

    子程序描述
    名称:show_str
    功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
    参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),
        (cl)=颜色,ds:si指向字符串的首地址
    返回:无
    就用举例:在屏幕的8行3列,用绿色显示data段中的字符串。

     

     

     

     

    代码:

     

    assume cs:code
       data segment
       db 'Welcome to masm!',0
       data ends
    
     code segment
       start:  mov dh,8
               mov dl,3
               mov cl,2
               mov ax,data
               mov ds,ax
               mov si,0
               call show_str
               mov ax,4c00h
               int 21h
       show_str: push dx
                 push cx
                 push ds
                 push si
    
         mov ax,0b800h
         mov es,ax
         
         mov al,160
         mul dh
         mov bx,ax
         mov al,2
         mul dl
         add bx,ax
        mov al,cl
        
             s: mov cl,[si] 
                  jcxz ok
                  mov dx,[si]
                  mov es:[bx],dx
                  mov es:[bx+1],al
                  inc si
                  add bx,2
                  loop s
    
     ok:             
      pop si
      pop ds
      pop cx
      pop dx
    ret
    code ends
    end start 

     

     

    实验截图

     

     

     

    2.  解决除法溢出的问题
    问题
    前面讲过,div指令可以做除法。当进行8位除法的时候,用al存储结果的商,ah存储结果的余数:进行16位除法的时候,用ax存储结果的商,dx存储结果的余数。可是,现在有一个问题,如果结果的商大于ah或ax所能存储的最大值,那么将如何?
    比如,下面的程序段:
     mov bh,1
     mov ax,1000
     div bh
    进行的是8位除法,结果的商为1000,而1000在ah中放不下,
    又比如,下面的程序段:
    mov ax,1000h
    mov dx,1
    mov bx,1
    div bx
    进行的是16位除法,结果的商为11000H,而11000H在ax中存放不下。
    我们在用div指令做除法的时候,很可能发生上面的情况:结果的商过大,超出了寄存器所能存储的范围。当CPU执行div等除法指令的时候。如果发生这样的情况,将引发CPU的一个内部错误。这个错误被称为:除法溢出。我们可以通过特殊的程序来处理这个错误, 这里我们不讨论这个错误的处理,这是后面的课程中要涉及的内容。

    好了,我们已经清楚了问题的所在:用div指令做除法的时候可能产生除法溢出。由于有这样的问题,在进行除法运算的时候要注意除数和被除数的值,比如1000000/10就不能用div指令来计算。那么怎么办呢?我们用下面的子程序divdw解决。


    子程序描述
    名称:divdw
    功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。
    参数:(ax)=dword型数据的低16位
        (dx)=dword型数据的高16位
        (cx)=除数
    返回:(dx)=结果的高16位,(ax)=结果的低16位
        (cx)=余数
    应用举例:计算1000000/10(F4240H/0AH)

      mov ax,4240h
      mov v dx,000fh
      mov cx,0ah
      call divdw


    提示
    给出一个公式:
    X:被除数,范围:[0,FFFF FFFF]
    N:除数,范围:[0,FFFF]
    H:X高16位,范围:[0,FFFF]
    L:X低16位,范围:[0,FFFF]
    int():描述性运算符,取商,比如:rem(38/10)=8
    rem():描述性运算符,取答数,比如:rem(38/10)=8
    公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N
    这个公式将可能产生溢出的除法运算:X/N,转变为多个不会产生溢出的除法运算。
    公式中,等号右边的所有除法运算都可以用div指令来做,肯定不会导致除法溢出。

    代码:

     

    assume cs:code
        code segment
        start:mov ax,4240h
              mov dx,000fh
              mov cx,0Ah
              call divdw
              mov ax,4c00H
              int 21h
    divdw:
          push ax
          mov ax,dx
          mov dx,0
          div cx
          mov bx,ax
          pop ax
          div cx
          mov cx,dx
          mov dx,bx
          ret    
        code ends
    end start

     

     

     

    程序截图:

     

    3.数值显示
    问题
    编程,将data段中的数据以十进制的形式显示出来。
    data segment
    dw 123,12666,1,8,3,38
    data ends
      这些数据在内存中都是二进制信息,标记了数值的大小。要把它们显示到屏幕上,成为我们能够读懂的信息,需要进行信息的转化。比如,数值12666,在机器中存储为二进制信息:0011000101111010B(317AH),计算机可以理解它。而我们要在显示器上读到可以理解的数值12666,我们看到的应该是一串字符:“12666”。由于 显卡遵循的是ASCII编码,为了让我们能在显示器上看到这串字符,它在机器中应以ASCII码的形式存储为:31H、32H、36H、36H、36H(字符“0”~“9”对应的ASCII码为30H~39H)。
      通过上面的分析可以看到,在概念世界中,有一个抽象的数据12666,它表示了一个数值的大小。在现实世界中它可以有多种表示形式,可以在电子机器中以高低电平(二进制)的形式存储,也可以在纸上、黑板上、屏幕上以人类的语言“12666”来书写。现在,我们面临的问题就是,要将同一抽象的数据,从一种表示形式转化为另一种表示形式。
      可见,要将数据用十进制形式显示到屏幕上,要进行两步工作:
    (1)  将用二进制信息存储的数据转变为十进制形式的字符串:
    (2)  显示十进制形式的字符串。
    第二步我们在本次实验的第一个子程序中已经实现,在这里只要调用一下show_str即可。我们来讨论第一步,因为将二进制信息转变为十进制形式的字符串也是经常要用到的功能,我们应该为它编写一个通用的子程序。


    子程序描述
    名称:dtoc
    功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符。
    参数:(ax)=word型数据
        ds:si指向字符串的首地址
    返回:无
    应用举例:编程,将数据12666以十进制的形式在屏幕的8行3列,用绿色显示出来。
    在显示时我们调用本次实验中的第一个子程序show-str。



    提示
      下面我们对这个问题进行一下简单地分析。
    (1)  要得到字符串“12666”,就是要得到一列表示该字符的ASCII码:31H、32H、36H、36H、36H。
    十进制数码字符对应的ASCII码=十进制数码值+30H
    要得到表示十进制数的字符串,先求十进制数每位的值。
    例:对于12666,先求得每位的值:1、2、6、6、6。再将这些数分别加上30H,便得到了表示12666的ASCII码串:31H、32H、36H、36H、36H。
    (2)  那么,怎样得到每位的值呢?采用如图10.2所示的方法。

    图10.2除10取余法示意


      可见,用10除12666,共除5次,记下每次的余数,就得到了每位的值。
    (3)  综合以上分析,可得出处理过程如下:
    用12666除以10,循环5次,记下每次的余数;将每次的余数分别加30H,便得到了表示十进制数的ASCII码串,如图10.3所示。



    图10.3得到十进制每位数字字符的方法示意

     


    (4)  对(3)的质疑:
    在已知数据是12666的情况下,知道进行5次循环。可在实际问题中,数据的值是多少
    程序员并不知道,也就是说,程序员不能事先确定循环次数。
      那么,如何确定数据各位的值已经全部求出了呢?我们可以看出,只要是除到商为0,各位的值就已经全部求出。可以使用jcxz指令来实现相关的功能。

     

     

     

     

     

    代码:

     

    assume cs:code
      data segment
      db 16 dup(0)
      data ends
    
     
      code segment
        start:mov ax,12666
              mov bx,data
              mov ds,bx
              mov si,0
              call dtoc
              mov dh,8
              mov dl,3
              mov cl,2
              call show_str
              mov ax,4c00h
              int 21h
    dtoc:
           mov cx,ax    ;17
           jcxz bk
           push ax
           mov al,ah
           mov ah,0
           mov bl,10
           div bl
           mov cl,al
           mov ch,ah
           pop ax
           mov ah,ch
           div bl
           mov dl,ah
           mov dh,0
           push dx
           mov ah,cl
           jmp short dtoc   ;29
         bk:pop ax 
            add ax,30h
            mov [si],al
            
            pop ax 
            add ax,30h
            mov [si+1],al
           
            pop ax 
            add ax,30h
            mov [si+2],al
            
            pop ax 
            add ax,30h
            mov [si+3],al    ;44
            
            pop ax 
            add ax,30h
            mov [si+4],al
            mov byte ptr [si+5],0
            ret
           
         
    show_str:
         mov si,0
         mov ax,0b800h
         mov es,ax
         
         mov al,160
         mul dh
         mov bx,ax
         mov al,2
         mul dl
         add bx,ax
         mov al,cl
        
             s: mov cl,[si] 
                  jcxz ok
                  mov dx,[si]
                  mov es:[bx],dx
                  mov es:[bx+1],al
                  inc si
                  add bx,2
                  loop s
    
     ok: ret    
      code ends
    end start


    程序运行截图

     

     

    至此    实验完成    

                               题中有不足之处  希望不吝赐教

                                             文中有的 文字是借鉴别人的    除了代码和截图

                                                 完成实验参考过别的资料,在第二个实验中受过小甲鱼视频(328/2)的启发

                                                                                                   视频资料上云盘找:链接: http://pan.baidu.com/s/1nvpQiLz 密码: et5r

                                                                                                                                                                                                                                     日期:2016_7_28

    展开全文
  • VBA子程序

    千次阅读 2018-12-08 22:37:44
    子程序(Sub Procedures,也叫子过程)与函数类似,但有一些差异。 子过程不需要有返回一个值,而函数可能会或可能不会有返回一个值。 子程序可以不用call关键字来调用。 子程序总是包含在Sub和End Sub语句中。 ...

    子程序(Sub Procedures,也叫子过程)与函数类似,但有一些差异。

    • 子过程不需要有返回一个值,而函数可能会或可能不会有返回一个值。
    • 子程序可以不用call关键字来调用。
    • 子程序总是包含在SubEnd Sub语句中。
    Sub Area(x As Double, y As Double)
       MsgBox x * y
    End Sub

    调用area脚本,计算面积

    Function findArea(Length As Double, Width AsDouble)
       area Length, Width    ' To Calculate Area 'area' sub proc is called
    End Function

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 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
    请按任意键继续. . .
    展开全文
  • 子程序设计

    千次阅读 2018-09-21 20:59:28
    上机实验08 子程序设计 知识提要: 掌握子程序的定义语句; 过程名 PROC [near/far] 过程体 RET 过程名 ENDP 其中过程名的命名方法与变量名相同,同一源程序中不能有相同的过程名.PROC为过程定义开始的伪指令...

    上机实验08  子程序设计

    知识提要:

    1. 掌握子程序的定义语句;

    过程名  PROC  [near/far]

       过程体

    RET

    过程名  ENDP

    其中过程名的命名方法与变量名相同,同一源程序中不能有相同的过程名.PROC为过程定义开始的伪指令,ENDP为过程定义结束伪指令,且PROC-ENDP必须配对使用。配对的PROC-ENDP前面的过程名应相同。NEAR/FAR定义了过程的属性,前者表示所定义的过程只能被相同代码段的程序调用,称为段内调用;而后者所表示的过程只能被不同代码段的程序调用,称为段间远调用。

    2.子程序结构形式

    一个完整的子程序一般应包含下列内容:

    1. )子程序的说明部分

    在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法.说明时,应含如下内容:

    .子程序名:命名时要见名知意.

    .子程序的功能:说明子程序完成的任务;

    .子程序入口参数:说明子程序运行所需参数及存放位置;

    .子程序出口参数:说明子程序运行结果的参数及存放位置;

    .子程序所占用的寄存器和工作单元;

    .子程序调用示例;

     

    1. )掌握子程序的调用与返回

    在汇编语言中,子程序的调用用CALL,返回用RET指令来完成。当发生CALL过程调用时,返回地址入栈;而运行RET指令时,则由栈顶取出返回地址。

    CALL指令执行分两步走;第一步,保护返回地址,利用堆栈实现,即将返回的地址压入堆栈;第二步,转向子程序,即把子程序的首地址送入IP或CS:IP。

    RET指令功能是返回主程序,即把子程序的返回地址送入IP或CS:IP。

    .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP;

    .段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。

    3.)子程序的现场保护与恢复

        保护现场:在子程序设计时,CPU内部寄存器内容的保护和恢复,在运行主程序时已经占用了一定数量的寄存器,子程序执行时也要使用寄存器。子程序执行完返回主程序后,要保证主程序按原来状态执行,这就需要对那些在主程序和子程序中都要使用的寄存器的内容在子程序体执行之前加以保护,这就是保护现场。

    恢复现场:子程序执行完后再恢复这些主程序中寄存器的内容,称为恢复现场。

    一般利用堆栈实现现场保护和恢复的格式:

    过程名PROC [NEAR/FAR]

    PUSH  AX

     

    保护现场

    PUSH  BX

    .

    .

    PUSH  DX

    .

     

    过程定义体

    .

    .

    POP  DX

    .

     

    恢复现场

    .

    .

    POP AX

    RET

    过程名  ENDP

    4.子程序的参数传递方法

    1. 寄存器传递参数

        这种方式是最基本的参数传递方式。即 主程序调用子程序前,将入口参数送到约定的寄存器中。子程序可以直接从这些寄存器中取出参数进行加工处理,并将结果也放在约定的寄存器中,然后返回主程序,主程序再从寄存器中取出结果。

    1. 存储器单元传(变量)递参数

     这种方法是在主程序调用子程序前,将入口参数存放到约定的存储单元中;子程序运行时到约定存储位置读取参数;子程序执行结束后将结果也放在约定存储单元中。

    1. 用堆栈传递参数

    利用共享堆栈区,来传递参数是重要的的方法之一。主程序将子程序的入口参数压入堆栈,子程序从堆栈中依次取出这些参数;经过子程序处理后,子程序将出口参数压入堆栈,返回主程序后再通过出栈获取它们。

     

    一、实验要求和目的

       

    1.熟悉汇编语言程序设计结构;

    2.熟悉汇编语言子程序设计方法;

    3.熟悉利用汇编语言子程序参数传递方法;

     

    二、软硬件环境

     

    1.硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存;

    2.软件环境:装有MASM 5.0、DEBUG、LINK和EDIT等应用程序。

     

    三、实验涉及的主要知识单元

    在实际应用中,经常根据遇到使用汇编语言子程序来实现,其中还发涉及到参数传递方法。可以应用寄存器、堆栈、变量来进行,调用子程序的入口参数和调用子程序后的出口参数。

    如:编写一程序,将3个8位有符号数中的最大值存入MAX单元中。

    分析:编制一个求两个数中最大值的过程,然后对其进行调用;由于程序中的数是符号数,所以,比较后的转移指令应该采用JL或JG。

    分析下面各程序代码sy08_1.ASM,掌握汇编子程序的设计与调用。

     

    Data segment

       A db 0f1h

       B db 12h

       C db 7fh

       Max db ?

    Data ends

    Stack segment para 'stack'

       Stapn dw 20 dup(?)

       Top  EQU length stapn   ;length的用法:length 变量名 。作用是返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值。

    Stack ends

    Code segment

      Assume cs:code ,ds:data,ss:stack

    Main proc far

      Start: push ds

             Mov ax,0

             Push ax

             Mov ax,data

             Mov ds,ax

             Mov ax,stack

             Mov ss,ax

             Mov sp,top

             Mov ah,a

             Mov al,b

             Call maxf

             Mov al,c

             Call maxf

             Mov max,ah

             Ret

    Main endp

    ;子程序名为MAXF。功能:求两个数中 较大者

    ;入口参数:AH,AL=2个有符号数

    ;出口参数:较大者在AH中,较小者在AL中

    Maxf proc near

      Cmp ah,al

      Jg next

      Xchg ah,al

      Next:ret

    Maxf endp

    Code ends

      End start

     

     

               
         
     
       
     
         

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

                                                                                     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

                                                                                     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    四、实验内容

    1、调试下面的程序 sy08_2.ASM,并给各语句增加注释

    DATA SEGMENT

       DT1 DW 1234H,5678H,90ABH,0BCDEH

       CNT EQU ($-DT1) /2

    DATA ENDS

    STACK1 SEGMENT PARA STACK

         STK DW 20 DUP(?)

         STKCNT EQU LENGTH STK

    STACK1 ENDS

     

    CODE SEGMENT

         ASSUME CS:CODE,DS:DATA,SS:STACK1

         START:

              MOV AX,DATA

              MOV DS,AX

              MOV AX,STACK1

              MOV SS,AX

              MOV SP,STKCNT

              MOV CX,CNT

              LEA SI,DT1

         LOP:

              PUSH [SI]

              ADD SI,2

              LOOP LOP

     

              POP AX

              POP BX

              POP CX

              POP DX

              MOV AH,4CH

              INT 21H            

    CODE ENDS

         END START

     

    2、请编程程序实现求数据ARRAY中的最大值,以求最大值元素所在的位置,要求:最大值放在变量M中,最大值元素所在的位置放在变量INDEX中。请补充完整下面的程序sy08_3.ASM。

     

    DATA SEGMENT

       ARRAY DW 1234H,5678H,90ABH,0BCDEH,0ABCDH,6754H,3267H,8293H,5249H,0CBFEH,0CABEH

       CNT EQU ($-ARRAY) /2

       M   DW ?       ;用于保存数据中的最大值

       INDEX  DW ?    ;保存数据中最大值所在的位置

    DATA ENDS

    STACK SEGMENT PARA STACK

         STK DW 20 DUP(?)

         STKCNT EQU LENGTH STK

    STACK ENDS

     

    CODE SEGMENT

         ASSUME CS:CODE,DS:DATA,SS:STACK

    ;***************************************

    ;主程序

    Main proc far

      Start:

             Mov ax,data

             Mov ds,ax

             Mov ax,stack

             Mov ss,ax

            

             ;请补充语句

     

             CALL Maxf

             Mov AH,4CH

             INT 21H

    Main endp

    ; *************************************

    ;子程序

    Maxf proc near

      

        ;请补充语句

     

        RET

    Maxf endp

    ;****************************************

     

     

    3、作业提交

    把完成后的sy08_1.ASM、sy08_2.ASM、sy08_3.ASM提交。

     

    展开全文
  • 利用ABAQUS进行热传导分析时,需要调用HETVAL,且同时需要与USDFLD子程序进行搭配使用, 1,要调用HETVAL,需要在inp文件中材料属性部分设置*HEAT GENERATION 或者在界面中设置时同样也是在property中设置HEAT ...
  • 汇编中的子程序

    万次阅读 2019-06-09 11:32:04
    子程序就是用来实现某一个功能的程序,和语言的一个func差不多,要利用call和ret来实现,下面通过一段代码来学习一下。 assume cs:codesg data segment db "china",0 data ends codesg segement begin:mov ax,...
  • 汇编语言_子程序

    千次阅读 2020-05-16 20:44:21
    目录子程序概念子程序伪指令定义代码举例用子程序多次输入一个65535以内的十进制数并以十六进制数显示 子程序概念 子程序调用指令CALL 格式为 CALL 子程序名 CALL相当于JMP 子程序名 相当于 标号 子程序执行完返回到...
  • 程序中断和调用子程序有何区别

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

    千次阅读 2016-03-30 15:33:36
    subroutine 如果子程序中的数组,明确声明了数字的大小 ,那么 ,就按照 声明的大小来处理。问题来了, 子程序可不可以,不指定大小,让数组从外面传递进来呢?
  • 主程序调用子程序后,主程序暂停在调用点,子程序开始执行,直到子程序返回,主程序开始执行。 我们可以这么理解:父进程运行的程序,创建了子进程,此时父进程和进程并发执行,是两个进程;主程序调用子程序后,主...
  • 汇编程序:用子程序实现求幂

    千次阅读 2017-04-22 23:07:57
    【任务】  编制一个子程序,求y=x4y=x^4... (2)版本2:子程序不变,主程序中提供如下数据区,在主程序中,循环调用子程序,完成y=x4y=x^4的求解,并将结果存入在相应的数据区:data segment x db 1,2,3,4,5,6,7,8
  • 《汇编》子程序

    千次阅读 2018-04-12 19:55:51
    结构流程图 main proc 子程序调用语句(EIP自动的由主程序指向子程序)→执行子程序段 ↓ ...
  • 递归下降子程序

    千次阅读 2018-05-31 21:01:11
    递归下降子程序1、实验目的实现递归下降子程序的功能。2、语言描述利用函数相互递归实现递归下降子程序的基础功能。3、具体实现#include <cstdio>#include <iostream>#include <...
  • 按键精灵sub子程序

    千次阅读 2020-09-19 14:23:02
    按键精灵sub子程序 /注意事项 1.子程序的顺序可以随便写 2.子程序在调用后,会回到调用的地方,注意执行顺序。 3.子程序定义sub不允许嵌套,只能写在最外面 4.调用子程序call允许放在任何地方,包括子程序内。 5....
  • perl子程序

    千次阅读 2012-09-21 10:33:37
    要定义自己的子程序,使用关键字sub,子程序的名字(无&这个符号),组成子程序的缩进的代码块(花括号中),如: sub marine { $n + = 1; #全局变量$n print“Hello, sailor number $n!\n”; } 子程序的定义是...
  • 汇编语言:利用子程序的嵌套和子程序的递归调用,实现N! 题目要求 利用子程序的嵌套和子程序的递归调用,实现N!的运算。 程序代码及运行 data segment org 3000h result dw 0000h org 3100h n db 8 data ...
  • 汇编语言——子程序调用

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

    千次阅读 2015-07-26 10:26:56
    1. 寄存器法——主程序与子程序之间传递的参数约定在寄存器中。 2. 堆栈法——主程序和子程序传递的参数都放到堆栈中。 3. 参数赋值法——把参数存放在主程序与调用子程序指令后面的一串单元中。
  • abap子程序

    千次阅读 2011-08-29 16:11:06
    子程序  语法:  form [].  .  endform.  定义子程序名。 选项用于指定如何与子程序进行数据交换。  注释:子程序中不能包含嵌套的form-endform块。   内部子程序
  • ABAQUS DLOAD子程序

    千次阅读 2017-08-11 10:30:00
    DLOAD子程序说明 ———————————————————————————————————— Use this subroutine to define nonuniform, distributedmechanical loads (pressures and body forces). 使用此...
  • PLC子程序与中断程序的区别

    千次阅读 2019-02-28 10:08:42
    它和调用子程序有什么区别呢? 因为中断是由系统调用的,不知道什么时候中断,所以你可以选择允许中断或者不允许中断,这就好比你正在干工作时,电话铃响了,你可以选择接电话也可以选择不接电话,中断就好比电话...
  • 汇编主程序与子程序参数传递方式

    千次阅读 2018-12-22 10:57:43
    实现方法是在主程序中把要传递的参数放在某一指定的寄存器中,然后从子程序中取出指定的寄存器参数。 2、约定单元法: 入口参数和出口参数都放在事先约定好的单元中,子程序可以直接访问该变量。 优点:不占用...
  • python subprocess用于程序执行时调用子程序,通过stdout,stdin和stderr进行交互。 Stdout子程序执行结果返回,如文件、屏幕等 Stdin 子程序执行时的输入,如文件 Stderr错误输出python subprocess类似os的部分...
  • 软件体系结构中主程序—子程序体系结构是较简单的结构,其组件是主程序和子程序,连接件是调用返回机制。  示例程序如下:  【功能】:输入一个数,判断是否为素数。 #include <stdio.h> #...
  • 中断服务子程序

    千次阅读 2018-05-16 17:55:42
    中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准...下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。 __interrupt double compute_...
  • 建立子程序的步骤

    千次阅读 2017-12-21 17:24:04
    建立子程序的步骤 1.主要活动概述 ​ 设计程序、检查程序、子程序编码、检查代码 2.程序设计语言(PDL) 有效使用PDL的方针: 模拟英语的语句来精确描述一个特定动作 避免使用最终程序语言的语句 说明方法...
  • 中断调用与子程序调用

    千次阅读 2017-04-19 09:46:11
    1、两过程定义与作用 子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。 子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入...
  • 子程序调用语句

    千次阅读 2014-11-14 14:47:30
    子程序调用语句 在进程中允许对子程序进行调用。从硬件的角度讲,一个子程序的调用类似于一个元件模块的例化,也就是说,VHDL综合器为子程序的每一次调用都生成一个电路逻辑块,所不同的是,元件的例化将产生...
  • 程序需求:编程写一个名为BubbleSort的冒泡排序子程序,主子程序间的参数传递通过堆栈完成;并写主程序验证它。 编程思路:主程序向子程序传递数组的时候,传递的是数组的首地址,也就是传递的是指针,所以子程序...
  • ABAQUS用户子程序一览表

    万次阅读 2016-08-02 22:09:00
    说明 ABAQUS用户子程序一览表 ABAQUSStandard subroutines Refence

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,137
精华内容 46,454
关键字:

子程序