8086 মেশিন কোড, 82 80
x.com
ফাইলের বিষয়বস্তু :
B7 3D 89 DF B1 80 F3 AA 0D 0A 24 B4 01 CD 21 42
38 D8 74 F7 38 17 77 02 88 17 88 C3 31 D2 3C 0D
75 E9 BF 21 3D B1 5E 31 C0 F3 AE E3 EE 4F BB 04
01 8A 05 D4 0A 86 E0 0D 30 30 89 47 02 3C 30 77
04 88 67 03 43 89 3F 89 DA B4 09 CD 21 47 EB D7
এটি কেবলমাত্র 99 টি পর্যন্ত অক্ষরের পুনরাবৃত্তি সমর্থন করে।
সোর্স কোড ( debug.com
এসেম্বলারের ইনপুট হিসাবে পরিবেশন করা হয়েছে ), মন্তব্য সহ!
a
mov bh, 3d ; storage of 128 bytes at address 3d00
mov di, bx
mov cl, 80
rep stosb ; zero the array
db 0d 0a 24
; 10b
mov ah, 1
int 21 ; input a char
inc dx ; calculate the run length
cmp al, bl ; is it a repeated character?
je 10b
cmp [bx], dl ; is the new run length greater than previous?
ja 11a
mov [bx], dl ; store the new run length
; 11a
mov bl, al ; remember current repeating character
xor dx, dx ; initialize run length to 0
cmp al, d ; end of input?
jne 10b ; no - repeat
mov di, 3d21 ; start printing run lengths with char 21
mov cl, 5e ; num of iterations = num of printable characters
; 127
xor ax, ax
repe scasb ; look for a nonzero run length
jcxz 11b ; no nonzero length - exit
dec di
mov bx, 104 ; address of output string
mov al, [di] ; read the run length
aam ; convert to decimal
xchg al, ah
or ax, 3030
mov [bx+2], ax
cmp al, 30 ; was it less than 10?
ja 145
mov [bx+3], ah ; output only one digit
inc bx ; adjust for shorter string
; 145
mov [bx], di ; store "x=" into output string
mov dx, bx ; print it
mov ah, 9
int 21
inc di
jmp 127 ; repeat
; 150
rcx 50
n my.com
w
q
এখানে কিছু গল্ফিং কৌশল ব্যবহার করা হয়েছে যা আমার মনে হয় মজাদার ছিল:
- অ্যারের ঠিকানা
3d00
, যেখানে3d
আসকি-কোড রয়েছে =
। এই ভাবে, অক্ষরের জন্য অ্যারে এর এন্ট্রির জন্য ঠিকানা x
হল 3d78
। যখন 2-অক্ষরের স্ট্রিং হিসাবে ব্যাখ্যা করা হয়, এটি x=
।
- আউটপুট বাফার ঠিকানা আছে
104
; এটি আরম্ভের কোডটি ওভাররাইট করে যা আর প্রয়োজন হয় না। শেষের-লাইন ক্রমটি 0D 0A 24
ক্ষতিকারক কোড হিসাবে কার্যকর করা হয়।
- এখানে
aam
নির্দেশাবলী কোনও গল্ফিং সরবরাহ করে না, যদিও এটি হতে পারে ...
- সংখ্যাটি দু'বার লিখে প্রথমে ধরে নিচ্ছি যে এটি 10 এর চেয়ে বেশি, এবং তারপরে এটি আরও ছোট হলে সংশোধন করুন।
- প্রস্থান নির্দেশটি একটি অস্পষ্ট ঠিকানায়
11b
, যা C3
ভাগ্যের দ্বারা প্রয়োজনীয় মেশিন কোড ধারণ করে ।