stuff
This commit is contained in:
parent
5cf46c956c
commit
49215693b8
|
@ -118,12 +118,11 @@ def parse_preproc(line):
|
||||||
assert(written == 8)
|
assert(written == 8)
|
||||||
pdata += written
|
pdata += written
|
||||||
|
|
||||||
elif tok[2][0] == "'":
|
elif tok[2][0] in "'\"":
|
||||||
s = tok[2].strip()
|
s = tok[2].strip()
|
||||||
assert(s[-1] == "'")
|
assert(s[-1] == tok[2][0])
|
||||||
|
|
||||||
s = s[1:-1]
|
s = s[1:-1]
|
||||||
assert(not "'" in s)
|
|
||||||
|
|
||||||
plabels_data[tok[0]] = pdata
|
plabels_data[tok[0]] = pdata
|
||||||
pdefs[tok[0] + "_len"] = str(len(s))
|
pdefs[tok[0] + "_len"] = str(len(s))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; The OS/K Team licences this file to you under the MIT license.
|
; The OS/K Team licences this file to you under the MIT license.
|
||||||
; See the LICENSE file in the project root for more information.
|
; See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
hw = 'Hello World'
|
hw = "Hello World"
|
||||||
|
|
||||||
;
|
;
|
||||||
; Entry point
|
; Entry point
|
||||||
|
@ -10,7 +10,7 @@ main:
|
||||||
; Initializes the stack
|
; Initializes the stack
|
||||||
mov rbp, 0x200000
|
mov rbp, 0x200000
|
||||||
mov rsp, rbp
|
mov rsp, rbp
|
||||||
|
|
||||||
mov ax0, hw
|
mov ax0, hw
|
||||||
call print
|
call print
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE language SYSTEM "language.dtd">
|
||||||
|
|
||||||
|
<language _name="Assembler (K-Arch)" version="1.0" _section="Sources" globs="*.k" mimetypes="text/x-asm;text/x-assembler">
|
||||||
|
|
||||||
|
<escape-char>\</escape-char>
|
||||||
|
|
||||||
|
<line-comment _name="Line Comment" style="Comment">
|
||||||
|
<start-regex>#|@|;|/</start-regex>
|
||||||
|
</line-comment>
|
||||||
|
|
||||||
|
<block-comment _name="Block Comment" style="Comment">
|
||||||
|
<start-regex>/\*</start-regex>
|
||||||
|
<end-regex>\*/</end-regex>
|
||||||
|
</block-comment>
|
||||||
|
|
||||||
|
<pattern-item _name="Label" style="Preprocessor">
|
||||||
|
<regex>^[A-Za-z_][A-Za-z_0-9.]*\:</regex>
|
||||||
|
</pattern-item>
|
||||||
|
|
||||||
|
<pattern-item _name="Local Label" style="Preprocessor">
|
||||||
|
<regex>.[A-Za-z_0-9.]*\:</regex>
|
||||||
|
</pattern-item>
|
||||||
|
|
||||||
|
<string _name="String" style = "String" end-at-line-end="TRUE">
|
||||||
|
<start-regex>"</start-regex>
|
||||||
|
<end-regex>"</end-regex>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<string _name="String 2" style = "String" end-at-line-end="TRUE">
|
||||||
|
<start-regex>'</start-regex>
|
||||||
|
<end-regex>'</end-regex>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<keyword-list _name="Assembler Cmds" style="def:preprocessor"
|
||||||
|
case-sensitive="TRUE"
|
||||||
|
match-empty-string-at-beginning = "TRUE"
|
||||||
|
match-empty-string-at-end = "TRUE">
|
||||||
|
<keyword>include</keyword>
|
||||||
|
</keyword-list>
|
||||||
|
|
||||||
|
<pattern-item _name="Instructions" style="def:keyword" case-sensitive="FALSE"
|
||||||
|
match-empty-string-at-beginning = "TRUE"
|
||||||
|
match-empty-string-at-end = "TRUE">
|
||||||
|
<regex>^\s+[a-zA-Z_]{2,}</regex>
|
||||||
|
</pattern-item>
|
||||||
|
|
||||||
|
<keyword-list _name="Registers K" style="def:type"
|
||||||
|
case-sensitive="FALSE"
|
||||||
|
match-empty-string-at-beginning = "TRUE"
|
||||||
|
match-empty-string-at-end = "TRUE">
|
||||||
|
<keyword>(inv|flg)</keyword>
|
||||||
|
<keyword>r[isb]p</keyword>
|
||||||
|
<keyword>r[a-fs][xi]</keyword>
|
||||||
|
<keyword>[an]x[0-9]+</keyword>
|
||||||
|
<keyword>(sa|cr)[0-9]+</keyword>
|
||||||
|
</keyword-list>
|
||||||
|
|
||||||
|
<pattern-item _name = "Decimal" style = "Decimal">
|
||||||
|
<regex>\b([1-9][0-9]*|0)([Uu]([Ll]|LL|ll)?|([Ll]|LL|ll)[Uu]?)?\b</regex>
|
||||||
|
</pattern-item>
|
||||||
|
|
||||||
|
<pattern-item _name = "Floating Point Number" style = "Floating Point">
|
||||||
|
<regex>\b([0-9]+[Ee][-]?[0-9]+|([0-9]*\.[0-9]+|[0-9]+\.)([Ee][-]?[0-9]+)?)[fFlL]?</regex>
|
||||||
|
</pattern-item>
|
||||||
|
|
||||||
|
<pattern-item _name = "Hex Number" style = "Decimal">
|
||||||
|
<regex>\b0[xX][0-9a-fA-F]+([Uu]([Ll]|LL|ll)?|([Ll]|LL|ll)[Uu]?)?\b</regex>
|
||||||
|
</pattern-item>
|
||||||
|
</language>
|
||||||
|
|
|
@ -180,7 +180,12 @@ call m
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
# push rbp
|
||||||
|
# mov rbp, rsp
|
||||||
enter
|
enter
|
||||||
|
|
||||||
|
# mov rbp, [rsp+8]
|
||||||
|
# add rsp, 8
|
||||||
leave
|
leave
|
||||||
|
|
||||||
pushf
|
pushf
|
||||||
|
|
Loading…
Reference in New Issue