2017-05-16 49 views
0

嗨我真的很陌生。如何打印我想要的int MASM?

我想打印我的角色和變量我的DOS屏幕

價值觀和字符串,我搜索了很多東西

,其中大部分叫我用‘詮釋’指令

.code 
    main PROC 
     mov dl, 'a' 
     mov ah, 2h 
     int 21h 
     exit 
    main ENDP 
    end main 

我已經寫了這樣的代碼,通過從互聯網應對。

,但我不明白什麼是MOV啊,2H'是和

「INT 21H」它總是trigers一個內存錯誤

我需要知道

如何獲得字符串,用戶輸入的整數,

如何打印我想要的值。

請幫助

+0

從這裏開始:http://www.phatcode.net/res/223/files/html/toc.html – Tommylee2k

+0

「退出」是什麼意思?什麼是內存錯誤?是在執行代碼之後返回的,還是由彙編器(編譯器)返回的?無論如何,'mov ah,2h'是中斷服務的子命令。把它看作一個巨大的開關盒。所有其他參數都放在零個或多個寄存器中。 (這裏是其他服務的備忘單:http://spike.scu.edu.au/~barry/interrupts.html) –

+0

我的意思是拋出內存錯誤的異常,對不起 – unlimitedcoding

回答

0

你的程序將無法正常工作,因爲該代碼生成一個DOS可執行文件和現代化的Windows版本不支持他們了(here for reference)。

對你的代碼做,讓我們analize代碼:

.code 
    main PROC 
     mov dl, 'a' ; Move character 'a' to the dl register 
     mov ah, 2h ; set the ah register to match with the 02 function code (write to STDOUT) 
     int 21h ; trigger the 21h interrupt 
     exit 
    main ENDP 
    end main 
如果你想要做閱讀文字以這種方式(即我寫之前,不再被支持)

閱讀here,看向讀字符STDIN

編輯:下面一個簡單的回聲功能:

; retrive a char from input 
mov ah, 1h 
int 21h 
;print that char back 
mov dl, al 
mov ah, 2h 
int 21h 
+0

我看到這不起作用了,而且你鏈接的網站是有用的,但我不知道如何使用這些信息:( 可以給我一個簡單的例子,我知道如何使用它們嗎? – unlimitedcoding

+0

你必須移動到啊功能代碼(01),然後你將保存的字符保存在al中,參見[這裏](http://spike.scu.edu.au/~barry/interrupts.html#ah01) –

+0

我用一個簡單的例子編輯,檢查'現代窗戶'em –