2007年2月26日

[工作] 學習筆記

; ********************* getstr.asm *******************

.model small

.data



msg DB 'please keyin a string : ', '$'

crlf DB 13, 10, '$'

buf DB 80



.code

start:

mov AX,@data

mov DS,AX



MOV DX, OFFSET[msg] ;顯示msg字串

MOV AH, 09H

INT 21H



MOV DX, OFFSET[buf] ;鍵入一個字串至buf

MOV AH, 0aH

INT 21H



MOV BH, 0 ;將s中0dH改成'$'

MOV BL, [buf][1]

MOV AL,'$'

MOV [buf][2][BX],AL



MOV DX, OFFSET[crlf] ;換列

MOV AH, 09H

INT 21H



MOV DX, OFFSET[buf][2] ;顯示s

MOV AH, 09H

INT 21H



MOV Ah, 4cH

INT 21H

end

-----

記得offset相當於c語言的指標

會將位址傳到register上去

簡單的說就是c語言裡的*



而不用offset時則是直接在memory上做r/W的動作



搞了我一個小時 = ="


另~此程式是在老蔡的blog上看到的
只是照著抓下來跟本無法組譯
只好改寫
不過大架構上還是以它那邊抓下來的為主

沒有留言: