Skip to content

Commit 0f3bbdb

Browse files
authored
Added Assembler 4004 and update Assembler 8051 (#1537)
* Added Assembler 4004 * Update Assembler 8051
1 parent db0911b commit 0f3bbdb

File tree

4 files changed

+91
-26
lines changed

4 files changed

+91
-26
lines changed

#/8051 Assembly

Lines changed: 0 additions & 24 deletions
This file was deleted.

a/Assembler 4004.asm

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
; H e l l o W o r l d
2+
; 48 65 6C 6C 6F 20 57 6F 72 6C 64
3+
START
4+
LDM $4 ; High nibble of letter 'H'
5+
WRR ; Write to ROM output port
6+
LDM $8 ; Low nibble of letter 'H'
7+
WRR ; Write to ROM output port
8+
9+
LDM $6 ; High nibble of letter 'e'
10+
WRR ; Write to ROM output port
11+
LDM $5 ; Low nibble of letter 'e'
12+
WRR ; Write to ROM output port
13+
14+
LDM $6 ; High nibble of letter 'l'
15+
WRR ; Write to ROM output port
16+
LDM $C ; Low nibble of letter 'l'
17+
WRR ; Write to ROM output port
18+
19+
LDM $6 ; High nibble of letter 'l'
20+
WRR ; Write to ROM output port
21+
LDM $C ; Low nibble of letter 'l'
22+
WRR ; Write to ROM output port
23+
24+
LDM $6 ; High nibble of letter 'o'
25+
WRR ; Write to ROM output port
26+
LDM $F ; Low nibble of letter 'o'
27+
WRR ; Write to ROM output port
28+
29+
LDM $2 ; High nibble of 'space'
30+
WRR ; Write to ROM output port
31+
LDM $0 ; Low nibble of 'space'
32+
WRR ; Write to ROM output port
33+
34+
35+
LDM $5 ; High nibble of letter 'W'
36+
WRR ; Write to ROM output port
37+
LDM $7 ; Low nibble of letter 'W'
38+
WRR ; Write to ROM output port
39+
40+
LDM $6 ; High nibble of letter 'o'
41+
WRR ; Write to ROM output port
42+
LDM $F ; Low nibble of letter 'o'
43+
WRR ; Write to ROM output port
44+
45+
LDM $7 ; High nibble of letter 'r'
46+
WRR ; Write to ROM output port
47+
LDM $2 ; Low nibble of letter 'r'
48+
WRR ; Write to ROM output port
49+
50+
LDM $6 ; High nibble of letter 'l'
51+
WRR ; Write to ROM output port
52+
LDM $C ; Low nibble of letter 'l'
53+
WRR ; Write to ROM output port
54+
55+
LDM $6 ; High nibble of letter 'd'
56+
WRR ; Write to ROM output port
57+
LDM $4 ; Low nibble of letter 'd'
58+
WRR ; Write to ROM output port
59+
END
60+
JUN END

a/Assembler 8051.asm

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
ORG 00H
2+
SJMP INIT
3+
4+
INIT:
5+
; Timer1 as the UART1 buadrate generator
6+
MOV TMOD, #20H ; Timer1, 8-bit auto-reload mode
7+
MOV TH1, #0FDH ; 9600 baudrate at 11.0592MHz
8+
MOV SCON, #50H ; Serial mode 1, enable reception
9+
SETB TR1 ; Start Timer1
10+
MOV DPTR, #20H ; Point DPTR to the start of the string
11+
12+
SEND:
13+
CLR A
14+
MOVC A, @A+DPTR ; Get the next character
15+
INC DPTR
16+
JZ DONE ; End program if the character is null
17+
MOV SBUF, A ; Send the character
18+
JNB TI, $ ; Wait for transmission to complete
19+
CLR TI ; Clear TI flag
20+
SJMP SEND
21+
22+
DONE:
23+
SJMP $ ; Endless loop
24+
25+
ORG 20H
26+
DB 'Hello World', 0
27+
28+
END

readme.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Thanks to everyone who continues to contribute; new languages are created every
88
Make sure to see [contributing.md](/contributing.md) for instructions on contributing to the project!
99

1010
<!--Languages start-->
11-
## Languages (1000 total)
11+
## Languages (1001 total)
1212

1313
* [!](%23/%21)
1414
* [!@#$%^&*()_+](%23/%21%40%23%24%25%5E%26%E2%88%97%28%29_%2B)
@@ -27,7 +27,6 @@ Make sure to see [contributing.md](/contributing.md) for instructions on contrib
2727
* [4test](%23/4test)
2828
* [4th Dimension](%23/4th%20Dimension.4dd)
2929
* [6969 Assembler](%23/6969%20Assembler)
30-
* [8051 Assembly](%23/8051%20Assembly)
3130
* [8th](%23/8th)
3231
* [@tention!](%23/%40tention%21)
3332
* [@text](%23/%40text)
@@ -111,11 +110,13 @@ Make sure to see [contributing.md](/contributing.md) for instructions on contrib
111110
* [Asm2bf](a/Asm2bf.asm)
112111
* [ASP](a/ASP.asp)
113112
* [Aspectj](a/Aspectj.aj)
113+
* [Assembler 4004](a/Assembler%204004.asm)
114114
* [Assembler 6502](a/Assembler%206502.asm)
115115
* [Assembler 6502appleII](a/Assembler%206502appleII.asm)
116116
* [Assembler 6502c64](a/Assembler%206502c64.asm)
117117
* [Assembler 6809vectrex](a/Assembler%206809vectrex.asm)
118118
* [Assembler 8048 videopac](a/Assembler%208048%20videopac.asm)
119+
* [Assembler 8051](a/Assembler%208051.asm)
119120
* [Assembler ARM aarch64](a/Assembler%20ARM%20aarch64.s)
120121
* [Assembler ARM](a/Assembler%20ARM.s)
121122
* [Assembler Atari 2600](a/Assembler%20Atari%202600.asm)

0 commit comments

Comments
 (0)