这是自动生成的代码模板
STACKS SEGMENT STACK 堆栈段
DW128 DUP(?) 注意这里只有128个字节
STACKS ENDS
DATAS SEGMENT 数据段
请在这里定义您的数据FLAG DB0
RE DW0
DATAS ENDS
CODES SEGMENT 代码段
ASSUMECS:CODES,DS:DATAS
START: MOV AX,DATAS初始化
MOV DS,AX
请在这里添加您的代码
PART1: MOV AH ,01H 键盘输入0~100任意数
INT 21H
CMP AL,0DH
JZPART2
SUB AL,'0'
PUSH AX
MOV AX,RE
SHL AX,1
PUSH AX
MOV CL,2
SHL AX,CL
POP BX
ADD AX,BX
POP BX
MOV BH,0
ADD AX,BX
MOV RE,AX
JMP PART1
PART2: MOV AX,RE
PART3: MOV CX,AX 求和
DEC AX
ADD RE,AX
LOOP PART3
MOV AX,RE
MOV CX,0十进制显示
MOV BX,10
PART4: MOV DX,0
DIV BX
ADD DL,30H
PUSH DX
INC CX
CMP AX,0
JNZ PART4
PART5: POP DX
MOV AH,2
INT 21H
LOOP PART5
MOV AX,4C00H退出程序
INT 21H
CODES ENDS
END START
直接复制过去用吧
你这个需求可以使用popen()来实现。FILE * file = popen("/linphonec", "w")
...
fwrite("call xxxx\r\n", 11, file)
fwrite("terminate\r\n", 11, file)
...
pclose(file)
你可以在QT的按钮slot里向file写入命令,这些命令就能传到linphone的stdin。
这么做的不足 1. popen只能打开单向管道 因此你读不到linphone的输出结果。2. popen在较低版本的uclibc上不是thread safe的
变通的办法是你改一下linphone,调用freopen来重定向自己的stdin和stdout
不过我觉得你最好还是改改linphone,集成到你的QT程序里算了,也不麻烦
其实这个 就是通过移位 和 逻辑运算解释下 第一句rGPFCON &= ~((3<<GPF0_CON)|(3<<GPF1_CON)
|(3<<GPF2_CON)|(3<<GPF4_CON))
意思是
1:0x03左移GPF0_CON 或上 0x03左移GPF1_CON 或上0x03左移GPF2_CON 或上0x03左移GPF4_CON这些值运算后 假设得到X
2:rGPFCON =rGPFCON &(~X) 这样 就间接的给 rGPFCON 赋值了
一般来说 想给寄存器 某一位 置1 应该采用或运算
想给寄存器 某一位清零 应该采用与运算
举个一目了然的例子
将rGPFCON 第3位置1
rGPFCON |=1<<3 //rGPFCON 或 0000 1000
将rGPFCON 第3位清零
rGPFCON &=~(1<<3) //rGPFCON 与 1111 0111
这样应该能明白了吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)