回 帖 发 新 帖 刷新版面

主题:汇编作业,请帮个忙

好呀,可以帮个忙吗?试写一个执行以下计算的子程序COMOUTER:
R-x+y-3
其中X,Y及R均为字数组。假设COMPUTER与其调用程序都在同一代码段中,数据段D_SEG中包含
X和Y数组,数据段E_SEG中包含R数组,同时写出主程序调用COMPUTER过程的部分。
如果主程序和COMPUTER在同一程序模块中,但不在同一代码段中,程序应如何修改?
如果主程序和COMPUTER不在同一程序模块中,程序应如何修改?

回复列表 (共2个回复)

沙发

快点回呀,怎么没有人做呢?

板凳


SSEG SEGMENT PARA STACK 'stack'
    dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS

DSEG SEGMENT
    ;数据段:在此处添加程序所需的数据
    x    dw    3    ;x=3
    y    dw    5    ;y=5
DSEG ENDS

ESEG SEGMENT
    ;附加段:在此处添加程序所需的数据
    R    dw    10    ;R=10
ESEG ENDS

CSEG SEGMENT
    assume  cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG


    
MAIN PROC       ;主程序入口
    
    push    ds
    push    es
    mov    ax,0
    push    ax

    mov    ax, dseg
    mov    ds, ax
    mov    ax, eseg
    mov    es, ax

    mov    ax,R
    sub    ax,x
    add    ax,y
    sub    ax,3

    
    ;此处添加主程序代码

    mov    ax, 4c00h  ;程序结束,返回到操作系统系统
    int    21h
MAIN ENDP
    
CSEG ENDS

END MAIN

我来回复

您尚未登录,请登录后再回复。点此登录或注册