日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序

發布時間:2024/4/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

輸出hello world,經典且不失優雅的操作。

在寫之前先了解一些知識,會編譯連接運行.asm文件

然后看一下匯編程序基本結構,有一點點matlab的感覺

代碼段,數據段,附加數據段等。

注釋符是分號

具體結構:

;匯編結構**data SEGMENT; 數據段,數據放到這段; 標識符 db/dw 數據;;定義字符串---- stri db "abdcsadabdahsd" data ENDS** edata SEGMENT ;附加數據段;附加數據部分. edata ENDS **code SEGMENT ;代碼段,程序具體代碼 ASSUME CS:code,DS:data,ES:edata 'data段是數據段DS,code段是代碼段CS,ES附加段start:;代碼區 code ENDS** END start ;程序結束,并且程序執行時由start開始執行。

然后是hello world程序:
1.定義數據段:

DATA SEGMENT ;定義數據段MYWORD DB "hello world!!!$";定義數據字符串 DATA ENDS

2.定義代碼與具體代碼

CODE SEGMENT;定義代碼段ASSUME CS:CODE,DS:DATA;表明誰是代碼段,誰是數據段 start:MOV AX,DATA;數據首地址賦值給AX,AX是寄存器,累加器MOV DS,AX;使得DS等價于AX,同樣指向數據段LEA DX,MYWORD;使DX寄存器指向數據變量word首地址MOV AH,09h;AH輸出數據INT 21h;執行AH的09h功能,輸出MOV AX,4c00h;設置寄存器功能INT 21h;調用寄存器功能,結束程序 CODE ENDS

3,結束

END start;代表結束程序并且在start處執行程序

完整代碼截圖:

然后編譯連接ok,不知道怎么做的話
可以看我的另一篇總結文章,
dosbox下自動mount
其實vscode有個快捷生成段的方法:
.code
.data
得到

但是不知道為什么編譯老是不過,最后老實的將_text$00等改了,
知道原因的網友,可以私信告訴我一下,謝啦,共同進步

ps: vscode插件: MASM 可以編寫匯編代碼,不是評論里的MSAM,是我打錯了。。。
不過vscode只是能編輯代碼,編譯鏈接運行還是要使用DOSBOX(虛擬的一個32位運行環境的軟件),配合四個exe文件進行編譯鏈接運行就好啦。

總結

以上是生活随笔為你收集整理的vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。