彙編學習筆記 一 Hello World

2021-07-23 05:31:31 字數 1438 閱讀 1969

彙編學習筆記(一): hello world!
記:

剛剛開始學習彙編,作下筆記,怕日後忘記

data  segment     ; 定義資料段

string db 'hello world!','$'

; db(define byte)用來定義一段記憶體資料 位元組為單位 是偽指令

data ends

code segment ; 定義**段

assume cs:code, ds:data ; 將段與暫存器關聯

; 具體意思不詳

start:

mov ax, data ; 拿到資料段的段位址

mov ds, ax ; 將段位址賦給ds段暫存器

lea dx, string ; 拿到string在資料段中

; 的偏移量

mov ah, 09h ; 功能號 09h在螢幕輸出

; 以'$'結尾的字串

int 21h ; dos功能呼叫

mov ah, 4ch ; 功能號 4ch 返回到dos

int 21h ; dos功能呼叫

code ends

end start ; 彙編編譯程式遇到end就

; 不往下編譯了

int 21h的dos功能呼叫 顯示字串時 以ds:dx作為字串的起始位址,以』$'作為結束

db 就相當於宣告一下後面的內容依次放到一塊連續的記憶體中 偏移量就是db前面的標示符

在 db中還可以用dup來宣告一塊記憶體 eg: 10 dup(0) 意思是定義一塊10個位元組的記憶體 並用0來初始化 如果(?)則說明不初始化

**中的 string是個變數 但是對編譯器來說它就是個位址, 如果直接用mov ax, string的話 那拿到的是sting這個位址處的內容(ax的話則拿到兩個位元組的內容, eax的話則拿到四個位元組的內容, al或ah的話則拿到1個位元組的內容), 想拿到string這個變數的本身的值(即位址)則需要用mov ax, offset string 或者 lea ax, string來獲取

eg:data segment

string1 db 『string1$』

string2 db 『string2$』

data ends

assume ds:data

編譯器編譯後 string1 即為 ds:0000

string2 即為 ds:0008 (因為 'string1$'是8個位元組)

所以此時用 mov ax, string1 則是到 ds:0000處取2個位元組的值

StrutsII學習筆記 HelloWorld

配置myeclipse 7.5 struts.xml檔案拷貝到src檔案下 配置如下 hello.jsp web.xml增加過濾器 struts2 org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter 新增inde...

grails學習筆記之二 Hello World

第一部分 建立乙個空白專案 4.grails會自動生成專案框架檔案,並且可以執行。6.在瀏覽器中輸入 如果能看到歡迎介面就是成功了。第二部分 了解grails專案目錄結構 如下圖所示 至於各個目錄的作用,存放哪些東西就不細說了。第三部分 helloworld 1.建立乙個controller,鍵入 ...

彙編學習筆記

1 cpu的指令集 cpu內整合了不同功能的電路模組 如 加 減法器,比較器 正常工作所對應的不同高低電平 數電知識 組合語言是人對機器指令的語言表述。2 cpu對硬體的控制實際是訪問其記憶體 如顯示卡上整合有ram 視訊記憶體 和rom 裝有唯讀bios 源 被編譯成機器 後被載入記憶體。3 程式...