PDA

View Full Version : اشکال در include ها



mahdi68
دوشنبه 10 آبان 1389, 00:11 صبح
سلام
من هر سورس .asm که میخوام داخل masm کامپایل و اجرا کنم در include ها خطا میگیره !!! مثلا io.h و یا stdlib.a و ....
آیا فایل های هدر باید به صورت جداگانه به masm اضافه کنم ؟؟؟
متشکرم

tdkhakpur
دوشنبه 10 آبان 1389, 12:31 عصر
نه فقط include کنید فقط از صحت کدهایی که نوشتید مطمئن باشید بعد داخل هدر قرار بدید.


include asmmac.h

mahdi68
دوشنبه 10 آبان 1389, 12:57 عصر
کدها صحیح هستند

include io.h
cr equ 0dh
lf equ 0ah

stack segment stack
dw 100h dup(?)
stack ends

data segment
number1 dw ?
number2 dw ?
prompt1 db 'enter student: ',0
prompt2 db cr,lf,'enter class: ',0
string db 40 dup(?)
label1 db cr,lf,'The student for class is '
sum dw 6 dup(?)
db cr,lf,0
data ends

code segment
assume CS:code,DS:data

start: mov ax,seg data
mov ds,ax

output prompt1
inputs string,40
atoi string
mov number1,ax

output prompt2
inputs string,40
atoi string
mov number2,ax

mov ax,number1
mov dx,number2
div number2
mov ax,number1
sub dx,dx

itoa sum,ax
output label1

mov al,0
mov ah,4ch
int 21h

code ends
end start

وقتی دستور ML.EXE اجرا میکنم پیغام خطا میده عکس ببینین

mahdi68
دوشنبه 10 آبان 1389, 13:13 عصر
و یا این کد از داخل یک کتاب برداشتم

.xlist
include stdlib.a
includelib stdlib.lib
.list
dseg segment para public ‘data’
; Global variables go here:
dseg ends
cseg segment para public ‘code’
assume cs:cseg, ds:dseg
; Variables that wind up being used by the standard library routines.
; The MemInit routine uses “PSP” and “zzzzzzseg” labels. They must be
; present if you intend to use getenv, MemInit, malloc, and free.
public PSP
PSP dw ?
;--------------------------------------------
; Here is a good place to put other routines:
;-----------------------------------------------------------------
; Main is the main program. Program execution always begins here.
Main proc
mov cs:PSP, es ;Save pgm seg prefix
mov ax, seg dseg ;Set up the segment
registers
mov ds, ax
mov es, ax
mov dx, 0
meminit
jnc GoodMemInit
print
db “Error initializing memory
manager”,cr,lf,0
jmp Quit
GoodMemInit:
;************************************************* **************************
; Put your main program here.
;************************************************* **************************
Quit: ExitPgm
Main endp
cseg ends
; Allocate a reasonable amount of space for the stack (2k).
sseg segment para stack ‘stack’
stk db 256 dup (“stack “)
sseg ends
; zzzzzzseg must be the last segment that gets loaded into memory!
zzzzzzseg segment para public ‘zzzzzz’
LastBytes db 16 dup (?)
zzzzzzseg ends
end Main
پیغام

cannot open file : stdlib.a