Re: [問題] 組語寫文書軟體 極新手求指點

看板ASM (組合語言)作者 (史考特)時間9年前 (2016/05/13 12:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《kamin17 (明罕)》之銘言: : 近期老師出了個作業 是用組語寫個簡易文書軟體 : 寫到Enter功能時卡住了 目前有個想法是 : 先利用int 10h的03h抓取當前位置 : 然後寫個迴圈 把後面剩下的每一格利用08h抓取ascii : 在設定座標到下一行的最前面 並且用0EH印出字 : 但這樣寫似乎不太可行 : 目前如果在有字的地方再次輸入 都會直接覆蓋掉 : 如果想要讓他往後移動 概念是否和enter功能類似? : 主要想要知道如何解決這問題..還請各位幫個忙!! : 補:有個概念即可 我會想辦法把它化為CODE!XD 第一: 我假設你在 dos prompt 下執行 第二: 我不清楚現在 bios 還有沒有 support all int 10h function call, 改EFI後 很多legacy interrupt function call 都remove 掉了, int 21h m$ 也移除大部分call 我講個概念..你參考參考 1. 你收到任何一個input key 應該找個 buffer 存 2. 處理buffer後, display 到 screen, 我印象 int10h 有可page切換, 不然就直接寫 A800:0000 3. buffer 跟 screen 對應關係, 如 page, scroll bar 每一行的返回0x0d 0x0a 的關係 如你問題, 當user 按 enter, 你應該在 buffer 插入 \r\n or \r, 顯示在螢幕就依照 buffer vs screen 的對應關係去填, 記得, 如果是文字模式下, 每一個字的位置都是在 a800:xxxx 都是固定位置, 當然你要用 int10h 去output 也可以 但要注意一點, 你的換行, 在螢幕要怎麼顯示! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.164.120 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1463114260.A.3CB.html
文章代碼(AID): #1NDLeKFB (ASM)
文章代碼(AID): #1NDLeKFB (ASM)