
English: 
I think, as far as I know, it was Brian
Kernighan and Dennis Ritchie who first
introduced it to me. I don't if it goes
back earlier than that, but certainly  in
the C book - there it is: 'printf ("hello
world\n")', you know, and the use of '\n'
to denote a new line at the end of it,
and all that. It's now really become a
part of Comp Sci legend. The first thing
you do when you show that you've
mastered [or just begun] a new language 
be it Python or whatever, you know, "Oh yes! here's
how to do 'Hello World' ". Of course, "Hello
World" is a characters-based challenge.
And from what we now know about
characters - in modern computers at least -
being stored in addressable bytes - 
does it sort of follow then, that "Hello
World" would be somewhat easier [at low level]
on a byte-based machine? Oh yes! it would be a lot
easier on a byte-based machine. But there's
other things as well. So as, perhaps, an

Turkish: 
Sanırım, bildiğim kadarıyla Brian'dı.
Kernighan ve Dennis Ritchie ilk kim
onu bana tanıttım. Ben giderse olmaz
Bundan daha erken, ama kesinlikle
C kitap - işte orada: 'printf ("merhaba
dünya \ n ") ', bilirsiniz ve' \ n 'kullanımı
sonunda yeni bir satır belirtmek,
ve hepsi. Şimdi gerçekten oldu
Comp Sci efsanesinin bir parçası. İlk şey
gösterdiğini yaptığın zaman yaparsın
ustalaşıldı [veya yeni başladım] yeni bir dil 
Python veya her neyse, bilirsin, "Ah evet! işte
"Merhaba Dünya" nasıl yapılır "Tabii ki," Merhaba
Dünya "karakter tabanlı bir meydan okumadır.
Ve şimdi bildiklerimizden
karakterler - en azından modern bilgisayarlarda -
adreslenebilir baytlarda depolanıyor - 
sonradan takip ediyor mu, "Merhaba
Dünya "düşük seviyede biraz daha kolay olurdu"
bayt tabanlı bir makinede? Oh evet! çok olurdu
bayt tabanlı bir makinede daha kolay. Ama orada
başka şeyler de var. Yani, belki de bir

English: 
illustration of just how horrible it
could be - and given that we have done
some stuff on EDSAC already -  let's go
and do that. If you haven't seen the
other EDSAC stuff I think you'll be
able to follow what I'm doing anyway.
And you could always go back later and
pick up some more background about EDSAC.
But when we were on this EDSAC
simulator, the last time, we actually did
run the program that Martin Campbell-Kelly
supplies with it. And he got fed up of
doing "Hello World". He said: "I'll just do a
brief version that says 'HI' ". We did that.
Thanks to a combined programming effort
now, by those in this room, I have here
the new version "HelloWorld_SR_DFB.txt" 
And there it is. It's quite a lot
longer, of course, than the previous one was. 
>> Sean: So, is each of those lines using a word, then ?
>> DFB: Yes. EDSAC was designed
around the most minimalist set of things
It was basically ... the story was ... if it's
possible to do [it] with what we've got
already, then don't start inventing new flavours of

Turkish: 
ne kadar korkunç olduğunu gösteren resim
olabilirdi - ve yaptığımıza göre
EDSAC ile ilgili bazı şeyler zaten - hadi gidelim
ve bunu yap. Eğer görmediyseniz
diğer EDSAC olayı olacağını düşünüyorum
Zaten ne yapıyorum takip edebiliyorum.
Ve her zaman sonra geri dönebilirsin ve
EDSAC hakkında biraz daha bilgi edinin.
Ama biz bu EDSAC'deyken
simülatör, geçen sefer, biz aslında
Martin Campbell-Kelly'nin programını çalıştır
onunla malzemeleri. Ve bıktı
"Merhaba Dünya" yapıyorum. Dedi ki: "Sadece yapacağım
'HI' yazan kısa versiyon ". Bunu yaptık.
Birleşik programlama çabası sayesinde
şimdi, bu odadakiler tarafından buradayım
yeni sürüm "HelloWorld_SR_DFB.txt" 
Ve işte orada. Oldukça fazla
tabii ki, öncekinden daha uzun. 
>> Sean: Öyleyse, bu satırların her biri bir kelime kullanıyor mu?
>> DFB: Evet. EDSAC dizayn edildi
en minimalist şeylerin etrafında
Temelde öyleydi ... öyleydi ... öyleyse
Elimizdekilerle [bunu] yapmak mümkün
zaten, o zaman yeni lezzetleri icat etmeye başlama

English: 
instructions. So, all you've got here is
- this is the stuff of course for setting
up where the load point is,
and where the relative offsets of these
addresses is, relative to 64. The '@' symbol at 
the end [of an instruction]  signals to David
Wheeler's Initial Orders that what comes
here is a relative address. So what it's
saying is: letter O - not a zero - "output
the character which you can find in the
memory location 16 further on than 64 is".
So, all these offsets: 16, 17, 18, 19, 20 are
all relative to 64. So in actual fact,
then, it turns out that address 80 holds
the very first thing you want to output.
And of course 16 on from 64 .... well if 64
is here this is where the actual data
starts. The 'ZF' and the things like that

Turkish: 
Talimatlar. Demek burada sahip olduğun tek şey
- Bu elbette ayar için şeyler
yükleme noktasının olduğu yere,
ve bunların nispi ofsetleri
adresleri 64'e göre değişir. '@' simgesi 
[bir talimatın] sonu David’e
Wheeler'ın ilk siparişleri ne geliyor
işte göreceli bir adres. Ne olmuş yani
Demek ki: O harfi - sıfır değil - "çıkışı
içinde bulabileceğiniz karakter
Hafızanın yeri 16, 64'ten daha ileri "dir.
Yani, tüm bu ofsetler: 16, 17, 18, 19, 20
hepsi 64'e göre. Yani gerçekte,
daha sonra, 80 adresinin tuttuğu ortaya çıktı
Çıkmak istediğiniz ilk şey.
Ve tabiki 16’dan 64’de .... eğer 64
burası gerçek verinin olduğu yer
başlar. 'ZF' ve bunun gibi şeyler

Turkish: 
bugünlerde ne denir
assembler direktifleri. Her zaman değil
bu şeylerin gitmesi durumunda
bire bir konuşarak meşgul olmak. Bazı
Bunlardan birçoğu montajcıya mesajdır.
Buradaki her şey temelde
"64'ü hatırlamanı istiyorum ve
buna göre her şeyi bulmaya başlayın ".
>> Sean: Çünkü özellikle bakarsak
Soldaki satır numaralarında
yapmaya çalıştığın yer olmaz
doğru olsun? "
>> DFB: Hayır, buradakiler
Muhtemelen modernde ne yapılırdı?
"ORG = 64" gibi bir şey söyleyerek montajcıları.
[ORG = "origin" olan) 
bir program talimatı. Sana söylüyor
assembler: "Lütfen beni 64 [64] 'te başlat. Ve Onun 
Kendi [assembler] iç bilgin için. Değil
programa çevrilmek
talimat. Yani ZF "Dur" diyor - dur
yürütme. Ama bu arada biz neyiz?
Beklenti 16 olan şey

English: 
correspond to what are nowadays called
assembler directives. It's not always the
case that these things go
one-for-one into occupying a word. Some
of them are messages to the assembler.
All the stuff up here is basically
saying: "I want you to remember 64 and
start locating everything relative to that".
>> Sean: Because if we look specifically
at the line numbers on the left there that
wouldn't be the  place you're trying to
get to,  right?".
>> DFB: No, this stuff up here is
what would probably be done in modern
assemblers by saying something like "ORG = 64".
[where ORG = "origin"] In other words that isn't 
a program instruction. It's telling you, the
assembler: "Please start me [loading] at 64". And it's 
for your own [assembler] internal knowledge. It's not
to be translated into a program
instruction. So the ZF says "Stop" - stop
execution. But in the meantime what we're
expecting is the thing that is 16 on

Turkish: 
64'ten bizi buraya buraya getirecek 
* F için. * F ne yapar? * kısa
"Harflerin içine koyun" deyin
shift ". 5 delikli kağıt kasetin gazileri olacak
Biliyorum - olduğundan emin olmalısın
anlamlı şekilde yazdırmak için harf kaydırma
mesajlar. Diğer olası kayma
rakam kayması ve tüm cehennem koparma gevşek
[bunun] dışına kaymayı unutmaya başlarsanız.
Tıpkı bir daktilodaki shift tuşu gibi.
tarihsel olarak geldiği yer
>> Sean: Bunu çok ama çok kullanabilir misin?
basit kod ?!
>> DFB: [gülüyor] Evet! Muhtemelen! Neyse, yani
harf kaymasına dönüş ve bak, bu
şimdi mantıklı! Birinde HF'yi görebiliyor musun?
[tek uzunluk] kelime? F şu anlama geliyor: "Bu
tek uzunlukta bir kelimedir ". Evet, 18 bit.
Aslında onlar için op-kod alanı
EDSAC öğreticisine sahip.
op-kod alanı bir H tarafından işgal edilir
ancak O komutu bu [bitleri 
op-code alanı] sanki karaktermiş gibi
- ve karakter olmak istedi.

English: 
from 64 will actually get us to here 
for *F. What does *F do?   * is a short
code for saying "Put yourself in letter
shift". Veterans of 5-hole paper tape will
know - you've got to make sure that you're
in letter shift to print meaningful
messages. The other possible shift is
figure shift and all hell breaks loose
if you start forgetting to shift out [of that].
It's just like the shift key on a typewriter,
that's where it comes from historically
>> Sean: Can you use that as a very, very
simplistic code ?!
>> DFB:  [laughing] Yes! Possibly! Anyway, so
turn into letter shift and, look, this
makes sense now! Can you see HF in one
[single-length] word?  F means: "This
is a single length word". Yeah, 18 bits.
Actually the op-code field for those
who've got the EDSAC tutorial. The
op-code field is occupied by an H
but the O command will output these [bits in 
the op-code field] as if they were characters,
-  and meant to be characters.

English: 
They've got to be in the
op-code field but the O command says: 
"Look in the opcode field". Regard it -
as not a Baudot character, remember Maurice
Wilkes had invented EDSAC code - subtly
different but never mind. And it's so you
end up coming to here and saying: "Oh! it's a
letter H [that] I am to output when this O
instruction, with a relative address
offset on it. And you go all the way. Look
here H-E-L-L-O. What's the exclamation mark?
Look it up in the EDSAC tutorial, as I
had to do. That's the marker you put in
if you want to force an explicit space
between HELLO and WORLD. Which we did. And
we finally ... what are @F and
&F after the 'D' of "HELLO WORLD"?
Well, let's take a guess. We're trying to
be neat and tidy - make it look good -
that's the code for "give me a carriage
return; give me a line feed". And then we
say "end of the whole thing; end execution".
And this is a marker also to Initial Orders:
You can stop relocating this program for me. 
I'm done.

Turkish: 
Onlar içinde olmalılar
op-code alanı ama O komutu diyor ki:
Msgstr "Opcode alanına bak". Saygılarımla -
Baudot karakteri değil, Maurice'i hatırla
Wilkes EDSAC kodunu icat etmişti - ustaca
farklı ama boşver. Ve bu yüzden sen
sonunda buraya gelip şöyle diyerek: "Ah!
H harfi [bu] çıktığımda bu çıktı
göreceli bir adrese sahip talimat
üzerinde dengelemek. Ve sen sonuna kadar gideceksin. Bak
HELLO burada. Ünlem işareti nedir?
EDSAC eğitiminde, benim gibi
yapmak zorundaydım. Bu içine koyduğun işaret
açık bir alanı zorlamak istiyorsanız
MERHABA ve DÜNYA arasında. Hangi biz yaptık. Ve
biz nihayet ... @F nedir ve
& F "HELLO WORLD" D'sinden sonra mı?
Hadi bir tahmin edelim. Biz çalışıyoruz
temiz ve düzenli olun - iyi görünmesini sağlayın -
"Bana bir vagon ver"
dönüş; bana bir satır besleme verin "ve sonra biz
"her şeyin sonu; idamın bitmesi" deyin.
Ve bu da İlk Siparişler için bir işaret:
Benim için bu programın yerini değiştirmeyi bırakabilirsin. 
Bitirdim.

English: 
OK. so that - since it's on top now -
Oh! - fingers crossed Sean - what do we do? We do
Start don't we? We noticed that, way back up at the top 
[of the program], we put in a Stop, just to make
sure. Because [puts on 'ironic' voice] with our 
incredible knowledge of EDSAC binary. Sean and I
can see, straight away, [looks at oscilloscope display] 
that that, of course, is HELLO WORLD. I mean,
we're not kidding. David Wheeler would know
that it said HELLO WORLD. I'll tell you
something else, Sean. After only half a day's 
familiarity with this,
John von Neumann would know that
that was HELLO WORLD! He'd find it so 
comfortable to remember the details of
the binary. Y'know, I'm sure he would!
I really do.
So, here we go then. Let's do a Single
EP,  a single instruction, Single
Shot, it's sometimes called nowadays. 
Right! There we are! It's still blinking. We
turned into letter shift with that click,
next click 'H'.Oh! isn't this wonderful Sean?!
Aren't we demon programmers?! E-L-L-  

Turkish: 
TAMAM. öyle ki - şu an zirvede olduğu için -
Ah! - parmaklar Sean'ı geçti - ne yapacağız? Yaparız
Başlayalım değil mi? Bunu farkettik, en tepeye geri dönerken 
[Programın], sadece yapmak için bir Dur koymak
emin. Çünkü ['ironik' sesi çıkarır] 
EDSAC ikiliinin inanılmaz bilgisi. Sean ve ben
hemen görebilir, [osiloskop ekranına bakar] 
Tabii ki, HELLO WORLD. Demek istediğim,
Dalga geçmiyoruz. David Wheeler bilirdi
HELLO WORLD dedi. sana anlatacağım
başka bir şey, Sean. Sadece yarım gün sonra 
buna aşinalık,
John von Neumann bunu bilirdi
HELLO DÜNYASI'ydı! Öyle bulurdu
ayrıntılarını hatırlamak rahat
ikili. Biliyorsun, yapacağına eminim!
Gerçekten yaptım.
Yani, işte o zaman gidiyoruz. Tek yapalım
EP, tek bir talimat, Tek
Shot, bugünlerde bazen denir.
Sağ! İşte oradayız! Hala yanıp sönüyor. Biz
bu tıklama ile harf kaymasına dönüştü,
sonraki 'H'.Oh! bu harika değil mi Sean ?!
Biz şeytan programcıları değil miyiz? ELL-

English: 
O-space.  Yes!  W-O-R-L-D- carriage
return - line feed. So, that was pretty
painful! Although the T64K gives you relocatability -
[e.g.] you could change that to be T256K,
say, if you wanted to - [i.e.] shove the
whole thing up memory and then maybe
turn it into a subroutine? You want to
push it somewhere else in memory. So, the
bulk relocation, against the base address,
is taken care of by Initial Orders, but
you've still got to get the offsets
right. And it's painful!
It's utterly, utterly painful. We're now
gonna jump forward [in time] into safe 
byte-addressed territory, for handling
characters, and [focus on] the ARM
32-bit ARM chip, which we use for
teaching assembler programming here 
[at Univ of Nottingham] to our first years 
[undergrads.] Yeah, it is a 32-bit word,
broken up into four bytes, 8-bit bytes,
which of course use ASCII not IBM EBCDIC

Turkish: 
O-alanı. Evet! DÜNYA-taşıma
dönüş - satır besleme Yani, bu güzeldi
acı verici! T64K size yer değiştirebilirlik sağlasa da -
[örneğin] bunu T256K olarak değiştirebilirsiniz,
diyelim, eğer - yani
her şeyi hafızada tutup sonra belki
bir rutine dönüştürmek? İstiyorsun
onu bellekte başka bir yere itin. Böylece
Temel adrese karşı toplu taşıma,
İlk Siparişler ile halledilir, ancak
hala ofsetleri almak zorundasın
sağ. Ve acı verici!
Tamamen acı verici. Biz şimdi
[zaman içinde] kasaya atlayacağım 
işlemek için bayt adresli bölge
karakterler ve [odaklan] ARM
32-bit ARM yongası, kullandığımız
assembler programlama burada öğretim 
[Nottingham Üniversitesi'nde] ilk yıllarımıza 
[undergrads.] Evet, 32 bitlik bir kelime.
dört bayt, 8 bit bayt,
elbette IBM EBCDIC’i kullanmayan ASCII

English: 
Fine,  so down at the assembler
level for the ARM, then, what does
the byte addressability give us and what
other things have happened between the
EDSAC era and this era, where we're
talking late 80s, 90s - this sort of
thing. What else has happened to make this 
{ARM assembler] thing so much more compact, so much
easier to understand and so much more
flexible? Well, let's go here through, step
by step. Comments: anything after a
semicolon is a comment. I've put a
comment up at the top saying to put out
the "Hello World", we've used the so-called
software interrupts - the
system calls - as provided by the
University of Manchester's KoMoDo ARM
development environment, which is what we
use. So when we get to actually printing
the character out, don't get worried by
SWI, it means  'software interrupt', to ask the
[KoMoDo] operating system to print something for
me, or something like that. So let's start
up here. Programs on the ARM will
cheerfully expect - if you don't tell them
otherwise - that they will start executing

Turkish: 
Tamam, montajcıdan aşağıya
ARM için seviye, o zaman, ne yapar
bayt adreslenebilirliği bize ne veriyor
arasında başka şeyler oldu
EDSAC dönemi ve bu çağ, biz neredeyiz
80'li ve 90'lı yılların sonunda konuşma - bu tür
şey. Bunu yapmak için başka ne oldu 
{ARM assembler] olayı çok daha kompakt, çok
anlaşılması daha kolay ve çok daha fazlası
esnek? Peki, hadi buradan gidelim, adım
adım adım. Yorumlar: sonra bir şey
noktalı virgül bir yorumdur. Bir koydum
dışarı koymak söyleyerek yorum yapmak
"Merhaba Dünya", biz sözde kullandık
yazılım kesintileri -
sistem çağrıları - servis sağlayıcınız tarafından
Manchester Üniversitesi KoMoDo ARM
biz geliştirme ortamı
kullanın. Öyleyse gerçekten basmaya başladığımızda
karakter dışarı, endişelenme
SWI, sormak için 'yazılım kesintisi' anlamına gelir.
[KoMoDo] işletim sistemi için bir şeyler yazdırmak
ben ya da onun gibi bir şey. Haydi başlayalım
tam buraya. ARM’deki programlar
neşeyle bekleyin - onlara söylemezseniz
Aksi halde - yürütmeye başlayacaklar

English: 
at line 1 of your program, and go
madly on. I put this data for "Hello World"
up at the top of the listing. Not at the
bottom as I could have done. But the rule
then is:  if I declare "Hello World" here, as
being a piece of text, and this DEFB
here means ' ,,, just define a bunch of bytes'.
And you put them in " quotes like you
would in C. And even - taking over some
of its story from C - it even allows you
to ask for a newline to be put in there
with \n. And the only difference
is whereas C implicitly plugs its
strings with a null character at the end,
ARM doesn't do that for you. You  must
explicitly put in a null character at
the end of your string - if that is your
stop indicator. But in order to stop the
ARM chip executing "Hello World" as if it
was bit-patterns for instructions - which you
don't want - you want to jump past it,  I've
put in here, look, an unconditional branch

Turkish: 
Programınızın 1. satırında ve gidin.
delicesine. Bu verileri "Merhaba Dünya" için koydum
listenin en üstünde. Değil
Yapabileceğim gibi dibe. Ama kural
öyleyse: burada "Merhaba Dünya" olarak ilan edersem,
bir metin parçası olmak ve bu DEFB
Burada ',,, sadece bir demet bayt tanımla' anlamına gelir.
Ve sen onları "senin gibi alıntılara koydun"
C olurdu ve hatta - bazı devralarak
C'den hikayesinin - size bile izin veriyor
oraya yerleştirilecek yeni bir hat istemek
ile \ n Ve tek fark
C ise, dolaylı olarak
sonunda boş bir karakter olan dizeler,
ARM bunu senin için yapmaz. Mecbursun
açıkça boş bir karakter koymak
dizenin sonu - eğer senin
dur göstergesi. Ama durdurmak için
ARM yongası sanki "Merhaba Dünya" yı çalıştırıyor
talimatlar için bit desenleriydi - ki
istemiyorum - sen atlamak istersin, ben
buraya koymak, koşulsuz bir şube

Turkish: 
[etiketi] 'ana'. Şube için 'ana'. Ah! şimdi bu
olağanüstü! Şube demek zorunda değilsin
mutlak bir adrese ve David gibi olmak
Wheeler ve John von Neumann ve sahip
hepsini kafanın içinde, sadece şöyle diyeceksin: "Hadi
onu 'ana' olarak adlandırın ve bu adı 'an
assembler 'ana' ne anlama geliyor
atlamak istediğiniz adres açısından
için. Bu harika değil mi? [Fantezi] von Neumann 
sana bakıyor ve diyor ki: "Bu zayıf beyinli için
Kim adreslerini takip edemiyor! "
Bilirsin! Her neyse, biz 'ana' dala
ve söylediği ilk şey, çok
açıkça, gerçekten:
"Bana metnin başlangıç ​​adresini al
dize ve bu başlangıç ​​adresini
1 [r1] 'i kaydedin.
uzun söz verdi:
[ARM gibi] modern CPU'lar [tipik olarak] 15 veya 16'ya sahiptir.
yaşam için özel amaçlı kayıtlar
katlanılabilir. EDSAC yoktu - sadece
akümülatör! Ve eğer diğerini istersen
depolarda park etmeye başladınız
bellekte, her türlü korkunç

English: 
to [the label] 'main'. Branch to 'main'. Aw! now this is
wonderful! You don't have to say branch
to an absolute address and be like David
Wheeler and John von Neumann and have
them all in your head,  you just say: "Let's
label it 'main' and this thing called 'an
assembler' will work out what 'main' means
in terms of the address you want to jump
to. Isn't that wonderful! [In fantasy] von Neumann 
stares at you and says: "That's for the weak-brained
who can't keep track of their addresses!"
Y' know! Anyway, so, we branch to 'main'
and the first thing it says, very
self-evidently, really is:
"Get me the start address of the text
string and put that start address into
register 1  [r1]". Next thing we notice - as
long promised: 
modern CPUs [like ARM] have [typically] 15 or 16
special-purpose registers to make life
bearable. EDSAC didn't - it only had the
accumulator! And if you wanted other
storage places, you had to start parking
it in memory, in all sorts of horrible

Turkish: 
yolları. Yani, bu bize hemen yardımcı olur: r1
bizim sözde endeks olacak
kayıt olmak; ile başlayacak
'H' adresine işaret ediyor. Şimdi yapmıyorum
'H' nin bayt adresinin ne olduğunu bilin. O
Burada nispeten sıfır bile olabilir. Onun
bunun içinde olan ilk şey
programı. Ama gerçek olan ne
'H' bayt adresi şimdi kayıtlıdır 1.
İşte her şeyin özü:
LDRB [B = bayt] "bir bayta yüklenir bayt
şöyle belirtildi; Burada r0 diyorum.
yüklemek istediğim kayıt bu
içine. Ama nereden geliyor?
Köşeli parantez içinde [r1]. Bakın diyor
R1’in adresini
bu dizgenin başlangıcı. Ben seni istemiyorum
adresi r0'a yükleyin, istiyorum
olan karakteri yüklemek için
bu adres r0'a. [Denir]

English: 
ways. So, that helps us straight away:  r1
is going to be our so-called index
register; it's going to start off by
pointing at the address of 'H'. Now I don't
know what the byte address of 'H' is. It
might even be relatively zero here. It's
the first thing that happens in this
program. But whatever is the actual
bytes address of 'H' is now in register 1.
Here is the crux of the whole thing:
LDRB [B=byte] "load into a register the byte
specified as follows; here I say r0,
that's the register I want to load it
into. But where does it come from?
In square brackets [r1]. That says look in
r1 and you will find an address of the
start of that string. I don't want you to
load the address into r0, I want
you to load the character that is at
that address into r0. It's [called] 

Turkish: 
"dolaylı" ve bununla gösterilir
köşeli parantez [yani] adresi koymamak
bu, r1’deki r0’a; Takip ediyorum
işaretçi r1 diyor ki: "Ah!
'H' harfi şu an ve ben de öyle
r0 içine koymak. Ve işte diğeri
sonunda sevimli şey - onlar olmaz
öncüler bunun için dünyayı verdi -
demek ki: "... ve bunu yaptığınızda,
lütfen, döngü çevresinde bir dahaki sefere
bu r1 adresini birer birer artırma ". Öyleyse, eğer
18’e işaret ediyordu, diyelim mi
ile başla, şimdi 19 oldu, bir dahaki sefere
döngü etrafında. Yani devam ettin
bu döngünün etrafında. Ve işte şey
boşa vurup vurmadığınızı kontrol ettiğiniz yer
karakter: "içeriğini karşılaştırın
0 yaz - hangi bir karakter olur
içeriği - kelimenin tam anlamıyla 0, karşı olan
boş karakter ne. Şimdi,
"evet" mi, yoksa "hayır" mı? Eşit mi, değil mi?
0'a eşit. Ve işte başka bir sevimli
Steve ve ben ARM çip hakkında bir şey
pahalıya. Bu 32-bit ARM yongası - I
64-bit'de [karar vermişler] öyle olmadığını düşünüyorum

English: 
"indirection" and that is indicated by that
square bracket [i.e.] not putting the address
that's in r1 into r0; I'm following the
pointer from r1 saying:" Oh! that's the
letter 'H'at the moment and that's what I
put into r0. And here's the other
cute thing at the end - wouldn't those
pioneers have given the world for this - 
is to say: " ... and when you've done that,
please, for next time around the loop
increment that r1 address by one". So, if
it was pointing at 18, shall we say to
start with, it's 19 now, for next time
around the loop. So you keep on going
around that loop. And here's the thing
where you check whether you've hit the null
character: "Compare the contents of
register 0 - which would be a character
contents - against literally 0, which is
what the null character is. Now, is the
answer "yes" or "no"? Is it equal, or not
equal, to 0. And here's another lovely
thing about the ARM chip that Steve and I love
dearly. This is the 32-bit ARM chip - I
think in the 64-bit one they've [decided] it's not

Turkish: 
Bugünlerde yapmak çok önemli. Onlar sahip
32-bit bir şey denilen
'şartlı uygulama', sizi kurtarabilir
genellikle bir dal komutunu kullanarak
boru hattında nispeten pahalı
terimleri. İşte burada SWINE var - ki
olağanüstü! Yazılım kesme 0 diyor
“... benim için bu karakteri aç
Ekranda, ekranda ". Ama NE diyor ki:" ... ama
sadece yaptığın son şeyi yapsa
'eşit' vermedi [yani 'eşit değil'] 
Null karakterini kontrol ediyoruz. Yani
boş karakter olmadığı sürece
"Hayır - boş değere eşit değilim
karakter ". Ve sen yazdır ve çıkar
karakter karakter karakter geliyor. Sonra
Tabii ki, geri gitmek için döngü
Etrafında ve başka bir karakter
# 1’de olduğunu hatırlamak
adres işaretçinizi boyunca artırdınız
bu dize. Demek devam ediyorsun
Burada ne olduğunu hatırlamak zorunda değilsin
adres 'döngü' dır. Bilmiyorsun [Fakat
assembler [ve] sizin için düzelttiğini bilir.
Ve sonra, en sonunda, yol
"Yürütmeyi durdur - Ben yaptım" demek için

English: 
so important to do it nowadays. They have
a thing in the 32-bit one called
'conditional execution', which can save you
often using a branch instruction, which
are relatively expensive in pipeline
terms. So here we've got SWINE-  which is
wonderful! Software interrupt 0 says
" ... punch out this character for me on the
display, on the screen". But NE says: " ...  but
do that only if the last thing you did
didn't yield 'equal' [so it's 'not equal'] 
Well, we're checking for the null character. So, as
long as it wasn't the null character
it'll say: "No - I'm not equal to the null
character". And you print it out and out
it comes, character by character. After
that, of course, you loop back to go
around and print another character,
remembering that the #1 has
incremented your address pointer along
that string. So you keep on going round
here you don't have to remember what [the]
address 'loop' is. You don't know! [But] the
assembler knows [and] it fixes it up for you.
And then, right at the very end, the way
to say: "Stop execution - I've done it" 

English: 
SWI flavour 2,  on this emulated environment
says "Stop it completely". The development
of that from EDSAC? You think "Oh! my golly, I
am so pleased I've got that!" And Martin
the inventor of the EDSAC simulator here, I
emailed him the other day and he came
back to me and said: "Yes, the need for an
index register was realized so quickly
that that's why my [EDSAC] emulator is [only] 
early '49 to late-ish 1950, because in late 1950
David Wheeler and everybody said "My golly, we need 
an index register!" And they built
one in. So, in a way then, this is what is
happening. It's that the pioneers were
using their early machinery
to lead the way into saying: "What extra
facilities do we need to make life
tolerable for us?" Now, there is the
hardware facility of having the index
registers and they've just become
standard kit, afterwards every other machine
has index registers.  But also what interests me is

Turkish: 
Bu öykünülmüş ortamda SWI lezzet 2
"Tamamen kes" diyor. Gelişme
EDSAC’dan mı? Sence "aman tanrım, ben
Çok memnunum, anladım! "
EDSAC simülatörünün mucidi burada
geçen gün ona e-posta attı ve o geldi
bana geri döndü ve dedi ki: "Evet, bir ihtiyaç
endeks kaydı çok hızlı gerçekleşti
bu yüzden [EDSAC] emülatörüm [sadece] 
1950'lerin sonundan 1950'lerin sonlarına doğru, çünkü 1950'nin sonlarında
David Wheeler ve herkes "Golly, ihtiyacımız var" dedi. 
Bir dizin kaydı! "Ve inşa ettiler
bir tane. Yani, o zaman bir şekilde, bu ne
olay. Öncülerin olduğu
ilk makinelerini kullanmak
şöyle demeye önderlik etmek için: "Ne ekstra
tesisler yaşam yapmamız gerekiyor mu?
bizim için tolere edilebilir? "Şimdi, orada
endekse sahip donanım tesisi
kaydeder ve onlar sadece oldu
Standart kit, daha sonra diğer tüm makineler
indeks kayıtları var. Ama aynı zamanda beni ilgilendiren şey de

Turkish: 
uygun bir montajcı rolü. ilk
Siparişler II tam gelişmiş bir montajcı değil.
Dönerek size biraz yardımcı olur
İkili ondalık ondalık adresleri siz
Bu A harfini hatırlamak zorundayım.
önde gelen beş bit koymak -
'A' karakteri olabilir, ancak
Bunu bir talimat olarak görüyorsunuz.
bu bir ADD talimatıdır. Yani, ama sonra
İlk Siparişler II taşınıyor; onun
taşındıktan; biraz ikili yapıyorum
çeviri; bu tek geçişli bir süreçtir;
bu harika! İle ilgili sorun
assembler iki geçişli olmak zorundadır
süreci. Her zaman sorun şu ki
etiketlerinize geri dönerseniz
daha önce gördünüz mü, zaten ne olduğunu bileceksiniz
adres olacak. Ama o zaman sen
ileri atla. Nerede olduğunu nasıl bileyim? 
etiket aşağıda [adres açısından] olacak?
Hesaplamak bile istemiyorum! İstiyorum
meclis şöyle diyor: "Ah!
Şimdi - ne kadar kullanışlı! "Ama sonra düzeltemez
öğrenene ve adrese kadar olan adresler

English: 
the role of a proper assembler. Initial
Orders II is not a full-blown assembler.
It helps you a little bit by turning
decimal addresses into binary but you
have to remember that that letter A - that
you put in the leading five bits -
could be the character 'A', but if
you're regarding this as an instruction,
that's an ADD instruction. So, but then
Initial Orders II is relocating; it's
relocating; doing a bit of binary
translation; it's a single-pass process;
it's wonderful! The problem with
assembler is it has to be a two-pass
process. The trouble always is that
if you jump back to labels you
have already seen, you will know already what
address that will be at. But it's  when you
jump forward. How do I know where the heck that 
label down there is gonna be [in address terms]?
I don't even want to calculate it! I want
the assembler to say: "Oh! I'm on location 186
now - how handy!" But then it can't fix up
the addresses till it knows and has

English: 
counted its way through the program.  So
then it says: "Right,
I will now output you a definitive thing
- that you can put in through David
Wheelers Initial Orders II - because I've
made it so much easier; because I've
allowed labels. One doesn't think of
labels as being a structuring convention
and yet at this low level they are, in a
way. Because this [label] is saying 'loop' - it
starts here. Another label. Oh! it ends
here. Please calculate the addresses of
what's happening there and fix it up
for me. And so you might say: "Well, all right
but didn't everybody say 'we must have
assemblers it's the modern way to do
things' ?" There were very mixed views
about this. And I don't think EDSAC got
an assembler until EDSAC 2 - when
another friend of mine, David Hartley 
did, I think, a macro-assembler for EDSAC 2 -
not EDSAC 1. Because there's a
story here related to von Neumann as
well. I don't know whether it was EDVAC or
his version of EDVAC that he had in his 
basement (called Johnniac ?!). Apparently he

Turkish: 
program boyunca yolunu saydı. Yani
sonra diyor ki: "Doğru,
Şimdi size kesin bir şey çıktısını vereceğim
- David’in içinden geçirebileceğiniz
Tekerlekli Sandalye İlk Sipariş II - Çünkü ben
çok daha kolay hale getirdi; çünkü ben
izin verilen etiketler. Biri düşünmüyor
bir yapılanma sözleşmesi olarak etiketler
ve yine de bu düşük seviyede, bir
yol. Çünkü bu [etiket] 'döngü' diyor -
burada başlıyor. Başka bir etiket. Ah! biter
İşte. Lütfen adreslerini hesaplayın
orada neler oluyor ve düzeltmek
benim için. Ve şöyle diyebilirsiniz: "Pekala, tamam
ama herkes demeliydi 'olmalıyız
montajcılar bu yapmanın modern yolu
şeyler '? "Çok karışık görüşler vardı
bunun hakkında. EDSAC’in de olduğunu sanmıyorum.
EDSAC 2'ye kadar bir montajcı - ne zaman
benim bir başka arkadaşım, David Hartley
EDSAC 2 için bir makro-birleştirici yaptı -
EDSAC değil 1. Çünkü bir
von Neumann ile ilgili hikaye burada
iyi. EDVAC olup olmadığını bilmiyorum veya
sahip olduğu EDVAC versiyonu 
Bodrum (Johnniac denir?!). Görünüşe göre o

Turkish: 
Gerçekten bir montajcı yazan lisans öğrencisi oldu. 
[İcat edilen alıntı] "Toplayıcılar zayıflar içindir
kendi başlarına çalışamayan beyinli
adresleri! Bunu anladınız mı?
senin derleyicisini çalıştırıyor - delme
bir kağıt kaseti çıkardım - arkanda ben varım
Sıraya. Sıradaki sıfatı alamıyorum! Sen gel
bana ve de ki: 'Ah ama bu hazır
yük, ikinci aşamada, mutlak ikili '
Zaman harcıyorsun! Eğer çok zayıf beyinliysen
mutlak olarak programlayamazsın ... [ben
kelimeleri ağzına koyarak !! ]. Ama bu öyleydi
aslında o. Kuşkusuz, içinde rüyalar gördü.
Mutlak İkili. Sorun yoktu
John von Neumann ile başa çıkma konusunda
mümkün olduğu kadar ikiliye yakın. Yapabilir
hepsini kafasında tut, ben de
EDSAC’de İlk Siparişleri bulduğunu düşünüyorum
hakkında, evet, güzel ve yardımsever. Tek geçiş
İşleri çok yavaşlatmamak. Ama bir montajcı!
Bu makineye zaman harcıyorsun! Yaparak
montajcılar. Gerçekten gerçekten demek istedim

English: 
really berated a grad student who wrote an assembler. 
[Invented quote] "Assemblers are for the weak-
brained who cannot work out their own
addresses!  You do realize that in
running this assembler of yours - punching
out a paper tape - I'm behind you in the
queue. I don't get my turn next! You come
to me and say: 'Ah but this is ready to
load now, in the second phase, as absolute binary'
You're wasting time! If you're so weak-brained
you can't program in absolute ... [I'm
putting words in his mouth !! ]. But this was
essentially it. He, no doubt, had dreams in
Absolute Binary. There was no problem
with John von Neumann about coping as
close to binary as possible. He could
keep it all in his head and he would, I
think have found Initial Orders on EDSAC
about, yes, nice and helpful. Single pass
Not slowing down things a lot. But an assembler!
You're wasting time on this machine! By doing
assemblers. I mean it really really

Turkish: 
eve her zaman sahip olanlarımıza getiriyor
şaka yaptım, biliyorsun: "Gerçek Programcılar
Assembler kullanın "Cevap, kesinlikle
John von Neumann'dan - muhtemelen David'den bile
Wheeler - ama o kadar olmaz
Bunun gibi aşırı - "Gerçek Programcılar kullanıyor
Mutlak İkili! "

English: 
brings it home to those of us who always
joked about, y'know: "Real Programmers
use Assembler" The answer, certainly
from John von Neumann - possibly even from David
Wheeler - but he wouldn't have been as
extreme as that - is: "Real Programmers use
Absolute Binary!"
