{"title":"x86.h static inline void insl(int port, void *addr, int cnt)","url":"https://jupiteroak.hatenablog.com/entry/2021/10/02/020000","type":"rich","provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fjupiteroak.hatenablog.com%2Fentry%2F2021%2F10%2F02%2F020000\" title=\"x86.h static inline void insl(int port, void *addr, int cnt) - \u91ce\u826f\u30d7\u30ed\u30b0\u30e9\u30de\u30fc\u306eCS\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","image_url":null,"description":"\u30c8\u30c3\u30d7\u30da\u30fc\u30b8 jupiteroak.hatenablog.com x86.h https://github.com/mit-pdos/xv6-public/blob/master/x86.h#L12 static inline void insl(int port, void *addr, int cnt) { asm volatile(\"cld; rep insl\" : \"=D\" (addr), \"=c\" (cnt) : \"d\" (port), \"0\" (addr), \"1\" (cnt) : \"memory\", \"cc\"); }insl\u95a2\u6570\u306f\u3001\u5f15\u6570port(I/O\u30dd\u30fc\u30c8\u30a2\u30c9\u30ec\u30b9)\u3067\u6307\u5b9a\u3055\u308c\u308b\u2026","blog_url":"https://jupiteroak.hatenablog.com/","blog_title":"\u91ce\u826f\u30d7\u30ed\u30b0\u30e9\u30de\u30fc\u306eCS\u65e5\u8a18","provider_url":"https://hatena.blog","width":"100%","height":"190","version":"1.0","author_url":"https://blog.hatena.ne.jp/jupiteroak/","categories":[],"published":"2021-10-02 02:00:00","author_name":"jupiteroak"}