0

好的,我正在尝试使用一些内联程序集编写 outportb 函数。但是,VS2010 中的(内联)汇编将不接受 char 变量作为操作数。我想要做的是创建一个指向 char 输入的指针,然后将输入字符的内存地址作为整数传递,然后将数据从该地址复制到目标地址。如果我创建一个 char 指针并传递输入 char 变量的地址,如何将数据的内存地址提取为一个短整数以将其作为 asm 操作数传递?

4

1 回答 1

0

由于 unsigned char 数据类型使用 ASCII 码,处理器无法将其与无符号 8 位整数区分开来。所以我想出的方法是创建一个 char 指针并将输入参数的内存地址传递给指针,然后将 char 指针移动到一个 16 位寄存器,然后可以将其直接 MOVd 到内存中。内联汇编代码实际上绕过了 Windows 内存管理;这就是它的美妙之处。;-)

于 2013-02-12T19:15:57.797 回答