WinDbg, 87 71 বাইট
db$t0 L1;.for(r$t1=@$t0;@$p;r$t1=@$t1+1){db$t1 L1};da$t0 L(@$t1-@$t0)/2
NUL byোকানো না করে -16 বাইট পরিবর্তে দৈর্ঘ্য অতিক্রম করে da
ইনপুট পিএসইডো-রেজিস্ট্রারের কোনও ঠিকানার মাধ্যমে প্রবেশ করানো হয় $t0
। উদাহরণ স্বরূপ:
eza 2000000 "abcdedcba" * Write string "abcdedcba" into memory at 0x02000000
r $t0 = 33554432 * Set $t0 = 0x02000000
* Edit: Something got messed up in my WinDB session, of course r $t0 = 2000000 should work
* not that crazy 33554432.
এটি মধ্য চরের ডান (বা স্ট্রিংয়ের দৈর্ঘ্য থাকলে ডান-মাঝারি) একটি নাল দিয়ে প্রতিস্থাপন করে কাজ করে এবং তারপরে মূল শুরুর স্মৃতি ঠিকানা থেকে স্ট্রিংটি মুদ্রণ করে।
db $t0 L1; * Set $p = memory-at($t0)
.for (r $t1 = @$t0; @$p; r $t1 = @$t1 + 1) * Set $t1 = $t0 and increment until $p == 0
{
db $t1 L1 * Set $p = memory-at($t1)
};
da $t0 L(@$t1-@$t0)/2 * Print half the string
আউটপুট:
0:000> eza 2000000 "abcdeedcba"
0:000> r $t0 = 33554432
0:000> db$t0 L1;.for(r$t1=@$t0;@$p;r$t1=@$t1+1){db$t1 L1};da$t0 L(@$t1-@$t0)/2
02000000 61 a
02000000 61 a
02000001 62 b
02000002 63 c
02000003 64 d
02000004 65 e
02000005 65 e
02000006 64 d
02000007 63 c
02000008 62 b
02000009 61 a
0200000a 00 .
02000000 "abcde"