⑴ 編程實現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語言規定了一個「字元串結束標志」,以字元'