用DosBox寫第乙個彙編Helloworld

2021-10-04 05:20:59 字數 1743 閱讀 8366

2 **

3 彙編執行

迫於學業終究還是要學彙編,感覺用彙編寫東西就沒有用高階語言寫東西寫的爽快,太硬核了。不裝dosbox就得裝虛擬機器用xp,還是裝dosbox吧。

到dosbox官網下個windows版本的,簡單的安裝,沒啥可說的。

為了免去每次開啟都需要用mount指令建立碟符,可以在配置檔案中把mount指令新增到開啟自動執行中。

配置檔案在這個地方,

然後把這個加在最後就行了(k也可以換成其他,後面的路徑就是我們之前建立的路徑)。k:

於是把; 『assume,段定址偽指令』 用來告訴匯程式設計序當前使用的各個段的段位址將要存放在哪個段暫存器中,但其實除了cs段暫存器之外,其他的段暫存器都賦不了值,需要待會重新給其他的段暫存器賦值這個換成了兩行,解決了問題。

; 資料段

data segment

mess db 'hello,world!' ,0dh ,0ah ,24h ; db 是定義位元組型別變數,字串儲存必須用db,不能用dw

; 0dh : 回車

; 0ah : 換行

; 24h : '$' ,即結束符號

data ends

; 資料段結束

; 堆疊段,不加這個會有警告,這個程式其實不需要用到堆疊

sseg segment para stack

dw 256 dup(?)

sseg ends

; 堆疊段結束

; **段

code segment

assume cs:code, ds:data ; 『assume,段定址偽指令』 用來告訴匯程式設計序當前使用的各個段的段位址將要存放在哪個段暫存器中,

; 但其實除了cs段暫存器之外,其他的段暫存器都賦不了值,需要待會重新給其他的段暫存器賦值

begin:

mov ax,data ; 指定資料段, 但是段暫存器不能直接賦值,需要通過ax過渡一下

mov ds,ax

mov dx,offset mess ; 將mess的首位址傳給dx,offset表示取首位址

mov ah,9 ; 接下來要呼叫 『輸出字串』

int 21h ; 系統功能呼叫

mov ah,4ch ; 接下來要呼叫 『返回dos系統』

int 21h ; 系統功能呼叫

code ends

; 資料段結束

end begin

用vscode寫**,搜了一下關於asm的擴充套件外掛程式不多。現在用的x86 and x86_64 assembly,是我試了好幾個**高亮的外掛程式之後比較符合我的感覺的。效果就像下圖一樣。

完成。

用Ruby寫第乙個程式

安裝了個ruby193,寫了第乙個ruby程式,來記錄下自己學習點滴。首先在ruby的新建個資料夾sample,再新新增個檔案,名字helloworld.rb 內容就是 puts hello,world 當然也可以先宣告變數,如後再用puts語句 a hello,world puts a當然也可以先...

用FLask框架寫第乙個小程式

encoding utf 8 從flask這個包中匯入flask這個類 from flask import flask 需要傳遞乙個引數 name 1.方便flask框架尋找資源 2.方便flask外掛程式比如flask sqlalchemy出現錯誤的時候 好去尋找問題所在的位置,一般格式固定,照抄...

寫的第乙個Shader

第乙個茶壺是可以運動的紋理,用時間的正弦值和余弦值加在紋理座標上產生偏移實現的,可以考慮用來實現水面的各種效果 第二個茶壺是顏色和紋理的混合,多層紋理的混合應該也是同樣的道理,就是把顏色值相乘就可以了 anipass float4x4 matviewprojection float fsintime...