ورود

View Full Version : مبتدی: در مورد اجرای برنامه !



Aliweb
یک شنبه 12 دی 1389, 11:53 صبح
برنامه ای به زبان اسمبلی 8086 و به شیوع قطعه کامل بنویسید که 2 عدد 5B,3F را که در خانه های از حافظه مستقر هستند را هم جمع نمودهو حاصل جمع را در خانه ای دیگر از حافظه قرار دهد !


STSEG SEGMENT
DB 64 DUP(?)
STSEG ENDS
;----------------------
DTSEG SEGMENT
DATA1 DB 3FH
DATA2 DB 5BH
SUM DB ?
DTSEG ENDS
;---------------------------
CDSEG SEGMENT
MAIN PROC FAR
ASSUME CS:CDSEG,DS:DTSEG,SS:STSEG
MOV AX,DTSEG
MOV DS,AX
MOV AL,DATA1
MOV BL,DATA2
MOV AL,BL
MOV SUM,AL
MOV AH,4CH
INT 2H
MAIN ENDP
CDSEG ENDS
END MAIN









این برنامه را من با EMU8086 اجرا میکنم و خطای زیر را میدهد کجای اشتباه هست ؟

xman_1365_x
دوشنبه 13 دی 1389, 04:23 صبح
اون خطا براي اين هست وقفه رو درست ننوشتي كافيه بنويسيint 21h
كلا اين خطوط را بايد تغيير بدي تا درست شه هدف برنامه


MOV AL,BL
MOV SUM,AL
MOV AH,4CH
INT 2H

Aliweb
دوشنبه 13 دی 1389, 09:45 صبح
int21h درست کردم

دیگه چه تغییری باید بدم ؟


MOV AL,BL
MOV SUM,AL
MOV AH,4CH
INT 2H

xman_1365_x
دوشنبه 13 دی 1389, 13:17 عصر
2 عدد 5B,3F را که در خانه های از حافظه مستقر هستند را هم جمع نمودهو حاصل جمع را در خانه ای دیگر از حافظه قرار دهد !

طبق حرف شما نياز هست اون دو متغير رو با هم جمع كني
چون نميشه مستقيم اين كارو كرد حالا يا هر دو يا يكي رو بريز توي رجيستر
بعد با هم جمع كن
حاصل رو بريز در sum
چون نگفته نمايش بدي يا عددي بگيري نيازي به استفاده از وقفه هم نبوده