一、acc中什么是条件表达式?
条件运算符(Conditional Operator)是C语言中唯一的一个三元运算符(Ternary Operator),运算时需要三个操作数。
例:使用条件运算符编程,计算并输出两个整数的最大值。
1 #include<stdio.h>
2 main(){
3 int a, b, max;
4 printf("Input a, b:");
5 scanf("%d,%d", &a, &b);
6 max = a > b ? a : b; /* 用条件表达式计算两整数的最大值 */
7 printf("max = %d\n", max);
8 }
程序第7行使用了条件表达式来计算两个整数的最大值。由条件运算符及其相应的操作数构成的表达式,称为条件表达式,它的一般形式如下:
表达式1 ? 表达式2 : 表达式3
其含义是:若表达式1的值非0,则该表达式的值是表达式2的值,否则是表达式3的值。
二、在汇编中?
意思:是一个预定义符号,等价于当前正汇编到的段的当前偏移值。
例如eg:指令“jmp$+3”中的“$”表示当前这条指令在代码段中的偏移量。
一、eg即“jmp$+3”表示要向前跳转到距离这条指令3个字节的地方。若是“jmp$-3”,则表示要向后跳转到距离这条指令3个字节的地方。
二、在汇编中是字符串结束的标志
如:DATA SEGMENT
MES1'HELLO',0AH,0DH,'$'
三、$同时也代表着美元
四、同时也是JQuery和PHP等框架或语言中所用的有特殊作用的符号。
扩展资料:
举例:汇编语言中$+4表示
$是指当前指令的地址
$+4就是当前指令+4的地址
举个$-4的例子,也一样。
DELAY:
MOV R3,#25
D1:
MOV R4,#20
D2:
DJNZ R4,D2
DJNZ R3,D1
RET
也可以写成:
DELAY:
MOV R3,#25
MOV R4,#20;MOV Rn,#data为2字节指令
DJNZ R4,$;DJNZ Rn,rel为2字节指令
DJNZ R3,$-4;$-4的地址向上-4个字节单元,指令就是MOV R4,#20
RET
参考资料:
三、汇编中mov sp?
首先你得了解特殊功能寄存器sp。在8086微机系统中,sp是堆栈指针,表明堆栈偏移地址。入栈操作后sp-2,出栈操作后sp+2。movsp,#60H的意思是设置堆栈的长度为60Hbyte。在该条指令前应该还需一条指令用于声明堆栈段地址。即movss,reg(reg泛指一般工作寄存器)
四、汇编中inc指令?
N1难道不是数据段中的一个地址吗
--对。
为什么inc命令不是将N1点地址加一(就是说N1将指向下一字节的地址),程序的意思好像是将N1的内容加一
--的确,就是把内容加一。
--你看看:INC N1+1
--这是把 N1 下一字节的内容加一
能解释一下原理吗
--这是汇编语言的规则,没有原理。
-----------------------
C语言:
int i, j, k;
j = j + 1;
是雷同的。
五、if函数中条件表达式只能是数字吗?
能做 if 判断条件的表达式要求值是算术类型(整数、各种浮点数)或指针类型。0 或 NULL 视为假,其他值视为真。不要求表达式含有比较运算符。赋值表达式不是语句,赋值表达式本身有值,类型是左运算数的类型。另外表达式加上 ; 后都能成为表达式语句。譬如 1; 也是一条语句。
六、什么是条件表达式?
条件表达式由条件运算符构成,并常用条件表达式构成一个赋值语句,条件表达式内可以嵌套。
其一般形式如下:
x=<表达式1>?<表达式2>:<表达式3>
其意义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。若为0(假),则求解表达式3,将表达式3的值赋给x。口诀:前真后假。
例如:
min=(a<b)?a:b;
效果是将a、b中较小的那个赋给min。
七、汇编中seg的作用?
变量的存储包括段地址和偏移地址。SEG就是取段地址的。比如:datasegmentore10hSTRINGdb'hello,world$'dataends假设data=1234h,则:movdi,segstring;di=string所在段地址,即1234hmovei,offsetstring;ei=string偏移地址,即10h
八、$-STA,$-BUF汇编中的?
用$-STA代替某一个变量 。
$-STA你可以看成表示符号代码!
就像 宏定义。
SBIT
举个例子。
BUF DB, 'ABCDE'
COUNT EQU $-BUF 这个句子中$-BUF 中间的 - 是减号
EQU是一条等价伪指令 表示COUNT等价于$-BUF
表示定义完BUF DB, 'ABCDE' 之后的存储器单元地址减去变量 BUF的地址
$-BUF=5 也即COUNT=5
九、汇编中assume的作用?
编写汇编语言的程序,要用编译软件来编译。
assume,就是通知编译软件的,说明段寄存器和定义段的关系。
编译软件,比较弱智,你随便瞎写一个对应关系,它都辨别不出来真假。
程序正确与否,全靠 MOV...这种针对 CPU 的指令,和 ASSUME 基本无关。
就不用琢磨它了。
十、汇编中ax与a区别?
是不一样的。ax 与a虽然都是累加器。但ax是16位cpu中的累加器,占16位,两个字节,可分为高低字节两部分,即ah和al。a是单片机中的累加器,占8位,一字节,可以进位寻址。这两个寄存器在使用中功能有很大的区别,你仔细看看单片机中的寻址指令就应该差不多能区分出来。
- 相关评论
- 我要评论
-