組合語言學生成績管理系統(一)結構體的使用

2021-07-08 09:59:50 字數 992 閱讀 9014

其一般說明格式如下:

結構名 struc [alignment][nonunique] 

資料定義語句序列 

結構名 ends

對齊方式(alignment):可用1、2或4來指定結構中字段的位元組邊界(byte boundary),其預設值為1。一般不用管

nonunique:要求結構中的字段必須用全名才能訪問。一般不用管

student struc

id db 10,?,10 dup(0)

name db 20,?,20 dup(0)

class db 10,?,10 dup(0)

chinese_score db 0

english_score db 0

student ends

說明:name 

db 50,?, 50 dup(?)  

對應的是int21h的 10號功能。定義的空間共有52個儲存單元就52個8bit位。第乙個儲存單元,就是上面的第乙個50,是說明該快取空間的大小,能放入50個字元,第二個儲存單元放的是實際的字元數,後面的是放字元的空間

stu    student <>;使用預設的初值 

course2 course <1, 』pascal』, 60> 

course3 course <2, , 84> ;使用預設的課程名 

peason1 peason<1000, 』張 三』, 34>

定義了結構型別的變數後,若要訪問其結構中的某個字段,則可採用如下形式: 

結構變數名.欄位名 

該引用方式與高階語言的字段引用方式完全一致,我們還可用偏移量來訪問其中的某個字段,但此方法不直觀,變動性大,所以,一般情況下,不提倡使用此方法。

mov al,stu.id

或:lea si, stu

mov al, [si+0]

C語言學生成績管理系統

這次實驗遇到非常多的問題,首先,由於不清楚標頭檔案的性質和原理,出現了許多重定義的問題,在除錯程式的時候總在輸入出錯處理上耽擱了很多時間,例如回車傳到某個字元型變數,引起了很多次死迴圈,還有浮點型資料似乎不能直接傳給乙個結構體裡的變數,需要用乙個中間變數來傳遞。每乙個的輸入都得非常小心。這樣的程式是...

學生成績管理系統C語言

include include include 主程式 void main writein void exit 定義結構體 struct student 宣告學生陣列及學生數量 struct student students 1000 int num 0 剛開始的學生數目為0 求總成績 float ...

C語言 學習記錄 學生成績管理

應用結構體陣列或鍊錶完成對學生成績的管理 要求實現的功能包括 1.學生資訊錄入 從鍵盤按學號順序輸入n名學生資訊 姓名,學號或成績 2.學生資訊輸出 輸出所儲存學生的資訊 3.學生資訊排序 按照成績從低到高的順序對錄入的學生資訊排序 4.學生資訊查詢 按照輸入的學號查詢並輸出對應學生的資訊 5.學生...