我有一個問題,我已經被賦予了一個任務來製作一個靜態庫,例如MASM,但是我在網上找到的所有教程對我來說都不完整或太難了解。我使用的是dosbox,因爲我有一個64位的窗口。 請幫忙一步一步 請和謝謝在使用dosbox時在MASM中創建一個庫
回答
我建議只使用DosBox來運行最終的可執行文件。您不需要DosBox來生成此可執行文件,因爲Masm32在64位Windows下運行。但Masm32附帶的lib.exe
不生成適用於link16.exe
的OMF庫。所以你必須得到一個「說話」OMF的lib.exe
,例如DigitalMars的lib.exe
(http://www.digitalmars.com/ctg/lib.html)。
實施例:
main.asm中:
.MODEL small
.code
EXTERN sub1:NEAR
main PROC
mov ax, @data
mov ds, ax
call sub1
mov ax, 4C00h
int 21h
main ENDP
.stack 1000h
END main
function.asm:
.MODEL small
.data
text db "This is sub1.",13,10,"$"
.code
sub1 PROC
push ax
push dx
mov ah, 09h
mov dx, OFFSET text
int 21h
pop dx
pop ax
ret
sub1 ENDP
END
build.cmd:
@ECHO OFF
SET PATH=C:\masm32\bin
ml.exe /c function.asm
ml.exe /c main.asm
<Path to DigitalMars>\dm\bin\lib.exe -c main.lib main.obj function.obj
link16.exe main.lib ;
在Windows的控制檯中構建它並在DosBox中運行main.exe
。
謝謝你,先生,我現在要試試這個。 – user3621489
本網站數字火星上的lib.exe文件不可下載。我對你的解釋的理解告訴我,如果沒有that.lib文件,我不能製作最終的庫,你能給我下載鏈接嗎? – user3621489
@ user3621489:我的鏈接指向文檔。但整個C++套件的下載鏈接(使用lib.exe)位於相同的域上:
- 1. Dosbox創建別名
- 2. 錯誤在C#中使用MASM庫時退出
- 3. 調用一個在MASM中製作的庫爲C或C++
- 4. 如何在DOSBOX中使用printf函數
- 5. 在數據庫中創建一個表
- 6. 在VB.NET中創建一個類庫
- 7. 在Java中創建一個圖庫 - Netbeans
- 8. 在NetBeans中創建一個類庫
- 9. 在c中創建一個庫類#
- 10. 在Zend中創建一個新庫?
- 11. 創建.exe文件的快捷方式在dosbox中打開
- 12. 在運行時創建一個類並在.Net中使用它?
- 13. MASM大會,創建循環
- 14. 在內存中創建一個SQLite數據庫vs使用tmpfs
- 15. 使用dockerfile在mysql中創建一個默認數據庫
- 16. 創建一個視圖,就像在xcode中使用添加庫
- 17. .IF和CMP之間的差異? INVOKE和PUSH&CALL? ?使用哪一個(MASM)在MASM
- 18. 在Jenkinsfile中創建一個時間戳
- 19. 在Android中創建一個計時器
- 20. 在MySQL中創建一個定時器
- 21. 什麼時候在倉庫中創建一個新的頭部?
- 22. 在eclipse中創建一個新的密鑰庫時出錯
- 23. 使用Numpy在使用py2exe時創建一個tcl文件夾
- 24. django在創建用戶時在userprofile表中創建一行
- 25. iOS在另一個庫中創建兩個靜態庫,方法在一個庫中調用方法
- 26. 如何在MASM中使用INSTR?
- 27. 如何使用MySQL數據庫在PHP中創建一個JSON arrray數據庫
- 28. 在GitHub上創建一個apt倉庫
- 29. 如何創建一個使用C#在Visual Studio數據庫2010
- 30. 創建數據庫,並使用語句在一個腳本
我們幫助您解決特定問題,但是一步一步做。 – Jamal