小弟遇到棘手的问题.在一次帮帮忙吧.

ZOU_SEAFARER 2009-02-25 03:53:23
以下是汇编语言.我想做成VC 函数.以前的程序是调用下面的代码通过rs_out/rs_in/rs_sts来链接OBJ文件(就是下面的代码).

现在我不想链接OBJ文件,直接在VC里写三个函数.然后在进行通信.
;--------------------------------------------------------------------------
; PCT.EXE Subroutine cominucation to DRIVER
;

DIRECT equ 0
C_READ equ 28 ; read_char code number
C_STATUS equ 29 ; status read port != 0 receive OK !
C_WRITE equ 30 ; write_char code number
DRV_INT equ 0c0h ; DRIVER.COM call INT number

p_data equ 30h ; 8251 data port
p_status equ 32h ; 8251 status port
txready equ 1 ; 8251 status port tx_ready bit
rxready equ 2 ; 8251 status port rx_ready bit

_TEXT segment para public 'CODE'
assume CS:_TEXT

;---------------------
; Write charcter
;
public _rs_out
_rs_out proc
push bp
mov bp,sp
mov al,4[bp]
xor ah,ah
mov bx,C_WRITE
int DRV_INT
pop bp
ret
_rs_out endp

;-------------------
; Read charcter
;
public _rs_in
_rs_in proc
mov bx,C_READ
int DRV_INT ; AL = read character
xor ah,ah
ret
_rs_in endp

;-------------------
; Read status
; output AX != 0 is ready !
public _rs_sts
_rs_sts proc
mov bx,C_STATUS
int DRV_INT ; AL = read port status
xor ah,ah
ret
_rs_sts endp

_TEXT ends
end
...全文
152 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kilrogg 2009-02-26
  • 打赏
  • 举报
回复
参考二楼侯大侠的浅谈NT下Ring3无驱进入Ring0的汇编实现,就可以写了
  • 打赏
  • 举报
回复
如果使用了in,out端口操作。只能通过驱动来实现
大熊猫侯佩 2009-02-26
  • 打赏
  • 举报
回复
一般不能在VC中内嵌16位汇编代码,况且我看你的16位汇编代码中
用了底层的机制,这样在保护模式下只有重写。
cnzdgs 2009-02-25
  • 打赏
  • 举报
回复
这是16位代码,Windows中不能执行的。

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧