⑴ 编程实现2个N字节无符号数减法程序。(用循环结构实现)N值自取大于3即可。
溢出用XCH交换指令调换两数大小,
比较两个无符号数大小:
ST1存放2个无符号8位2进制数
ORG 2000H
SRART:
MOV DPTR,#ST1 ;设数据指针
MOVX A,@DPTR ;取第一个数
MOV R2,A ;存于R2
INC DPTR ;加1
MOVX A,@DPTR ;取第二个数
CLR C ;清进位位
SUBB A,R2 ;两数比较(累加器减寄存器和借位)
JNC BIG2 ;C清零转移去大数
XCH A,R2 ;大小数交换(累加器和寄存器交换)
BIG1: INC DPTR
MOVX A,@DPTR
RET
BIG2: MOVX A,@DPTR
SJMP BIG1
ST1 EQU 2040H
END
⑵ strcpy函数如何使用
1、strcpy 函数使用方法:
strcpy()函数是C语言中的一个复制字符串的库函数。
2、空指针检查:源指针和目的指针都有可能会出现空指针的情况,所以应该对其进行检查。
3、const 修饰:源字符串参数用const修饰,防止修改源字符串;
4、为什么要设置ret 指针以及返回ret指针的位置[3],由于目的指针dst已经在进行移动了,所以用辅助指针ret表明首指针;
(2)编程里面ST1是什么意思扩展阅读:
strcpy 函数的错误用法及反馈:
1、不检查指针的有效性,说明答题者不注重代码的健壮性。
2、(A)return new string("Invalid argument(s)");,说明答题者根本不知道返回值的用途,并且他对内存泄漏也没有警惕心。从函数中返回函数体内分配的内存是十分危险的做法,他把释放内存的义务抛给不知情的调用者,绝大多数情况下,调用者不会释放内存,这导致内存泄漏。
3、(B)return 0;,说明答题者没有掌握异常机制。调用者有可能忘记检查返回值,调用者还可能无法检查返回值(见后面的链式表达式)。妄想让返回值肩负返回正确值和异常值的双重功能,其结果往往是两种功能都失效。应该以抛出异常来代替返回值,这样可以减轻调用者的负担、使错误不会被忽略、增强程序的可维护性。
4、(A)忘记保存原始的strDest值,说明答题者逻辑思维不严密。
⑶ C语言中有string吗
C语言中没有string类型。
string类型是 C++、java、VB等编程语言中的。 在java、C#中,类是不可变的,对String类的任何改变,都是返回一个新的String类对象。string 是C++标准程序库中的一个头文件,定义了C++标准中的字符串的基本模板类std::basic_string及相关的模板类实例。
而在C语言中,C语言中没有字符串类型,字符串是存放在字符型数组中的,将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符'