פורסם 2011 בנובמבר 1214 שנים כתבתי תוכנית אשר משתלתת על פסיקה Trap Flag עלמנת לבדוק האם הפקודה הבאה לביצוע היא חיבור או כפל. אם כן תמנה אותן. זה הכלהנה:.model large ;------MUL/SUM counter-----;.datacount dw 0int1save dw ?int1saveSeg dw ?.code;------------------------------------------------public _Start_IMUL_Count_Start_IMUL_Count proc farpush bpmov bp,sppush cxpush espush ax;-------------Int1Save = getvect (1);mov ax,0xor ax,axmov es,axmov ax,es:[4]mov word ptr int1save,axmov ax,es:[6]mov word ptr int1saveSeg,ax;------------------setvect (1,add_identify);climov word ptr es:[4],offset add_identifymov word ptr es:[6],csstipop axpop es;------------turn on the trap flagpushfpop axor ax,100000000Bpush axpopfpop cxpop bpret_Start_IMUL_Count endp;-------------------------------------------------public _Return_IMUL_Count_Return_IMUL_Count proc farpush bpmov bp,sp;------------turn off the trap flagpushf pop axand ax,1111111011111111Bpush axpopf;----------------------------setvect (1,Int1Save);push espush axmov ax,0mov es,axclimov ax,word ptr int1savemov es:[4],axmov ax,word ptr int1saveSegmov es:[6],axstipop axpop es;-------------------------------------------mov ax,0pop bpmov ax,countmov count,0ret_Return_IMUL_Count endplab:;-------------------------------------------------add_identify proc far push bp mov bp,sp push ax push bx push cx push dx push es push ds push si push di;---------------------------------------------------------------------- mov es,[bp+4] ; es = cs ; segment mov bx,[bp+2] ; bx = ip ; offset mov ax,es:[bx] cmp al,03h Je Fadd ;cmp al,f7h ;jne label1 jmp label1Fadd: inc count ; cmp al,f7h ; jne label1 ; inc countlabel1: ;---------------------------------------------------------------------- pop di pop si pop ds pop es pop dx pop cx pop bx pop axpop bp iretadd_identify endpEND עכשיו יש בעיה קטנה. אני לא יודע מה ה-opcode של הפקודה של הכפל. (השדות שהם בתור הערות). יש לי פה טבלה שממנה אני אמור לשלוף את ה-opcode אבל אני לא מצליח להבין איך עושים את זה.הנה הטבלה של ה-opcodes :http://wwwcsif.cs.ucdavis.edu/~davis/50/8086%20Opcodes.htmבכל אופן, ניסיתי לעשות השוואה של al עם F7H אבל זה לא נכון.למישהו יש מושג איך להוציא מהטבלה המוזרה הזאת את ה-opcode של הפקודה imul??תודה
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.