PDA

View Full Version : نمونه سوال زبان ماشین و اسمبلی



Omid RKO
شنبه 27 خرداد 1391, 19:38 عصر
درود
دوستان من چند روز دیگه امتحان زبان ماشین دارم
کسی یه سری نمونه سوال با پاسخ تشریحی و یا نمونه کد که دارای توضیحات باشه داره که من از روش بیشتر یاد بگیرم ؟

Omid RKO
شنبه 27 خرداد 1391, 23:13 عصر
دوستا کسی می تونه این کد رو توضیح بده که چیکار کرده ؟؟



EXTRN MULU32 : FAR
PUBLIC MULS 32
DSEG SEGMENT PARA
′DATA′
NEG_IND DB ?
DSEG ENDS
CSEG SEGMENT PARA
′CODE′
MULS32 PROC FAR
ASSUME CS:CSEG , DS:DSEG
; Initialize the data segment address
PUSH DS ;Save caller’s DS and DI
PUSH DI
MOV DI, DSEG ;Initialize DS
MOV DS , DI
MOV NEG_IND,0 ;Negative indicator=0
CMP DX, 0 ;Multiplicand negative?
JNS CHKCX ;No. Go check multiplier
NOT AX ;Yes.2s-comp.multiplicand
NOT DX
ADD AX,1
ADC DX,0
NOT NEG_IND ;and 1s-comp. Indicator
CHKCX: CMP CX,0 ;Multiplier negative?
JNS GOMUL ;No. Go multiply
NOT BX ;Yes. 2s-comp. Multiplier
NOT CX
ADD BX,1
ADC CX,0
NOT NEG_IND ;and 1s-comp. Indicator

2٤٩
GOMUL: CALL MULU32 ;Perform unsigned multiplication
CMP NEG_IND,0 ;Does product have right sign?
JZ DONE ;Yes. Exit.
NOT AX ;No. 2s-comp. Product
NOT BX
NOT CX
NOT DX
ADD AX,1
ADC BX,0
ADC CX,0
ADC DX,0
DONE: POP DI ;Restore caller’s registers
POP DS
RET
MULS32 ENDP
CSEG ENDS
ENِD

xman_1365_x
پنج شنبه 01 تیر 1391, 22:53 عصر
کدی که همرا با تگ html کپی کردین ناقص هست اما اگر کامنت های برنامه رو بخونید متوجه ضرب 32 بیتی با استفاده از ثبات 16 بیتی میشین برای راهنمایی بیشتر کد برنامه رو بصورت کامل قرار بدین وقت بررسی خطوط برنامه رو ندارم.