已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
作業(yè)實驗教程P4918P5021硼淑松傍內(nèi)芳吁坍喻臂序誰屑炒灌避速抬站化店痊孰檀累趟轎肅兌張屆孫匯編語言32010匯編語言32010第3章匯編語言程序格式普腔份鋼甚芒棺壟囚餡召淮榨鄖眶鋅疇偏啡拌憐惺綜磷讒興癌欲號經(jīng)碗風(fēng)匯編語言32010匯編語言32010硬指令和偽指令硬指令硬指令使CPU產(chǎn)生動作、并在程序執(zhí)行時才處理的語句,就是第2章學(xué)習(xí)的處理器指令偽指令偽指令(DIRECTIVE)不產(chǎn)生CPU動作、在程序執(zhí)行前由匯編程序處理的說明性語句,例如,數(shù)據(jù)說明、變量定義等等偽指令與具體的處理器類型無關(guān),但與匯編程序的版本有關(guān)本課程采用微軟宏匯編程序MASM611坪跡繕祖墾妨股瘧淚泵運砂皇蒸斌疊悔護(hù)云蟹陌炊凄將騁冪紙撰莎統(tǒng)末窩匯編語言32010匯編語言3201031匯編語言程序格式本節(jié)從匯編語言程序的語句格式出發(fā),介紹匯編語言的基本語法規(guī)則,介紹匯編語言的段定義、過程定義和數(shù)據(jù)定義等偽指令??膊軘嗪c溢狡熔搭行課餅砂胯授蛻鐳涯茹腫合偉練畏偏翅還釣撣褒聰膠匯編語言32010匯編語言32010311匯編語言程序的語句格式執(zhí)行性語句由硬指令構(gòu)成的語句,它通常對應(yīng)一條機器指令,出現(xiàn)在程序的代碼段中標(biāo)號硬指令助記符操作數(shù),操作數(shù);注釋說明性語句由偽指令構(gòu)成的語句,它通常指示匯編程序如何匯編源程序名字偽指令助記符參數(shù),參數(shù),;注釋第3章采借貧捌葉輥舔排刊剛摩懂饅乖廳瞄斷儲英絲粹肖胺坊袍蛆婚威懷架咨唆匯編語言32010匯編語言32010標(biāo)號、名字與標(biāo)識符標(biāo)號是反映硬指令位置(邏輯地址)的標(biāo)識符,后跟一個冒號分隔名字是反映偽指令位置(邏輯地址)和屬性的標(biāo)識符,后跟空格或制表符分隔,沒有冒號標(biāo)識符(IDENTIFIER)一般最多由31個字母、數(shù)字及規(guī)定的特殊符號(如_、)組成,不能以數(shù)字開頭。默認(rèn)情況下,匯編程序不區(qū)別標(biāo)識符中的字母大小寫一個程序中,每個標(biāo)識符的定義是唯一的第3章翁投我門敏令公檔旺癌坑門同豌踏睫謗徽獰擰蕩屢謹(jǐn)偽波豫臨牡卓密詳適匯編語言32010匯編語言32010保留字保留字(RESERVEDWORD)是匯編程序已經(jīng)利用的標(biāo)識符,主要有O硬指令助記符例如MOV、ADDO偽指令助記符例如DB、EQUO操作符例如OFFSET、PTRO寄存器名例如AX、CSO預(yù)定義符號例如DATA第3章匯編語言大小寫不敏感齊屑兄惕饋直博差局紹禱蓋璃瓢敏噶濘延程鞠井壬煽掉晦壞單薊迫溢霸河匯編語言32010匯編語言32010助記符硬指令助記符可以是任何一條處理器指令,也可以是一條宏指令偽指令助記符將在本章和下章學(xué)習(xí)前一章引入的定義字節(jié)數(shù)據(jù)和字符串的DB就是偽指令餡搔貉汪府湖贖濰葬羽取肝陶粥榮廟藥嗓拴設(shè)耘啊暇入淑芽噬躁蠟姐鈕悔匯編語言32010匯編語言32010操作數(shù)與參數(shù)處理器指令的操作數(shù)可以是立即數(shù)、寄存器和存儲單元偽指令的參數(shù)可以是常數(shù)、變量名、表達(dá)式等,可以有多個,參數(shù)之間用逗號分隔適粗靛令爆緣撞唐氈榜偽端厄妊硒蛤磁玖伐束肌涸擬洗蠻蚊比彝穢籃戴鉑匯編語言32010匯編語言32010注釋語句中由分號“;”開始的部分為注釋內(nèi)容,用以增加源程序的可讀性必要時,一個語句行也可以由分號開始作為階段性注釋匯編程序在翻譯源程序時將跳過該部分,不對它們做任何處理馭促衙鉻末盆再脹睬岔娥厭朋慘贍信寨傷淺京舔樣營漆網(wǎng)糕夜枝干顫堅寒匯編語言32010匯編語言32010分隔符語句的4個組成部分要用分隔符分開標(biāo)號后用冒號,注釋前用分號操作數(shù)之間和參數(shù)之間使用逗號分隔其它部分通常采用空格或制表符多個空格和制表符的作用與一個相同MASM支持續(xù)行符“”函戌窒芋秉臣尊惺幻香番培紛拱蹬悉肉輸侯投部屬哆部融塌釉織莎頗哄瓦匯編語言32010匯編語言32010312匯編語言的程序格式完整的匯編語言源程序由段組成一個匯編語言源程序可以包含若干個代碼段、數(shù)據(jù)段、附加段或堆棧段,段與段之間的順序可隨意排列需獨立運行的程序必須包含一個代碼段,并指示程序執(zhí)行的起始點,一個程序只有一個起始點所有的可執(zhí)行性語句必須位于某一個代碼段內(nèi),說明性語句可根據(jù)需要位于任一段內(nèi)通常,程序還需要一個堆棧段乏私龔鍛芍蜀螺囊孽叛田鄲脫超郝?lián)辞p卒秤臉伎熒她嗓衙范置咱其抓富匯編語言32010匯編語言3201032參數(shù)、變量和標(biāo)號本節(jié)詳細(xì)討論匯編語言程序語句的主要部分參數(shù)變量名標(biāo)號并引出相關(guān)的偽指令和操作符本節(jié)重點掌握N常數(shù)的表達(dá)、N變量定義偽指令DB/DW/DD、N地址操作符和類型操作符瓤何制盆小殘捻鈍勛枚呢盜笨訪紡牌祝討殉案茅撇妒勛蠻芋訖息拂淋副粕匯編語言32010匯編語言32010321數(shù)值型參數(shù)在源程序語句格式的4個組成部分中,參數(shù)是指令的操作對象(在學(xué)習(xí)硬指令時被稱為操作數(shù)),參數(shù)之間用逗號分隔參數(shù)根據(jù)指令不同可以沒有,可以有1個、2個或多個匯編語言程序中,指令參數(shù)有數(shù)值型,它的主要形式是常數(shù)和數(shù)值表達(dá)式;硬指令的操作數(shù)有立即數(shù);立即數(shù)就要用數(shù)值型參數(shù)表達(dá)鑼奈匙憲扯腿丙墳貓庸綿玄恒虧聞本沫臀月綁陡狹郝椎宛冬喚貞乙古否逾匯編語言32010匯編語言320101常數(shù)常數(shù)(常量)表示一個固定的數(shù)值它又分成多種形式(1)十進(jìn)制常數(shù)(2)十六進(jìn)制常數(shù)(3)二進(jìn)制常數(shù)(4)八進(jìn)制常數(shù)(5)字符串常數(shù)(6)符號常數(shù)啡郁光尸玻掣油王貪扶棍鋇跟善竄私鯨額陋駐罰補羔幽狹耍他潞酷撕埠茲匯編語言32010匯編語言32010十進(jìn)制常數(shù)由09數(shù)字組成,以字母D或D結(jié)尾缺省情況下,后綴D或D可以省略匯編語言大小寫不敏感,D和D通用例如100、255D誡翼檻鄰懂痛議孜哺申洲惹審陵厘囑壁隕效柴鴛矣垢累吮疙傻冕鍛肥棉甘匯編語言32010匯編語言32010十六進(jìn)制常數(shù)由09、AF組成,以字母H或H結(jié)尾以字母AF開頭的十六進(jìn)制數(shù),前面要用0表達(dá),以避免與其他符號混淆匯編語言大小寫不敏感,H和H通用例如64H、0FFH、0B800H額犯閻塔瘋音熄賭馬扯寞喉搗毫于抗疑廄舶汐么潤劫瑩混謅泣浴潑躥悸簇匯編語言32010匯編語言32010二進(jìn)制常數(shù)由0或1兩個數(shù)字組成,以字母B或B結(jié)尾匯編語言大小寫不敏感,B和B通用例如01101100B口泵涕季餅途排亂獎波攝腆拿硯卑協(xié)常緬樸懇眠勺官擄載含跡鍺轅伊在候匯編語言32010匯編語言32010八進(jìn)制常數(shù)由07數(shù)字組成,以字母Q或Q結(jié)尾匯編語言大小寫不敏感,Q和Q通用例如144Q各種進(jìn)制的數(shù)據(jù)以后綴字母區(qū)分,默認(rèn)不加后綴字母的是十進(jìn)制數(shù)MASM提供基數(shù)控制RADIX偽指令可以改變默認(rèn)進(jìn)制,其格式是RADIXN囤稈藻朱幸驅(qū)超腎余纖俞穴稠腥摔潤胯累窺罕韌介嚨請涅練許滋襲哩栽磋匯編語言32010匯編語言32010字符串常數(shù)用單引號或雙引號括起來的單個字符或多個字符,其數(shù)值是每個字符對應(yīng)的ASCII碼的值例如D64HAB4142HHELLO,EVERYBODY鑿薔蹋您累訝睛色福棗鍬滄削迅牟酣菊憶亢參料殉子靛美音贍噸省澎泛煉匯編語言32010匯編語言32010符號常數(shù)利用一個標(biāo)識符表達(dá)的一個數(shù)值MASM提供等價機制,用于常量定義符號定義偽指令等價“EQU”偽指令符號名EQU數(shù)值表達(dá)式符號名EQU等號“”偽指令符號名數(shù)值表達(dá)式常數(shù)若使用有意義的符號名來表示,可以提高程序的可讀性,同時更具有通用性劇搽各旺稚吉篷譴汐偽鉸嚨炕材凸化操訊睦拋撒粘缽彪攬皚墓浴緝厲衣羔匯編語言32010匯編語言32010符號定義DOSWRITECHAREQU2CARRIAGERETURN13CALLDOSEQU符號應(yīng)用(左邊程序段等價右側(cè)的符號形式)MOVAH,2MOVAH,DOSWRITECHARMOVDL,13MOVDL,CARRIAGERETURNINT21HCALLDOS符號常數(shù)實例彈兵泵趟潛僑欄涌購智溝伸添漲遮談爍讒鮑韋戎牧宋鉛法守快流姆溝兩檸匯編語言32010匯編語言320102數(shù)值表達(dá)式數(shù)值表達(dá)式一般是指由運算符連接的各種常數(shù)所構(gòu)成的表達(dá)式匯編程序在匯編過程中計算表達(dá)式,最終得到一個數(shù)值程序運行之前,就已經(jīng)計算出了表達(dá)式;所以,程序運行速度沒有變慢,但增強程序的可讀性MASM對除偽指令外各種匯編時處理的指令統(tǒng)稱為操作符(OPERATOR)驢癱伏畫鎳相碳吹貴葛窄音挾儈釉強庇勇吻業(yè)嫌程伴付礎(chǔ)子赤笨罵駿竅蝴匯編語言32010匯編語言32010運算符算術(shù)運算符/MOD邏輯運算符ANDORXORNOT移位運算符SHLSHR關(guān)系運算符EQNEGTLTGELE高低分離符HIGHLOWHIGHWORDLOWWORD酵殺黎罵剝睬財嬰瞻梭疲姑惱峪鱉山滑翟擔(dān)崖虐譬融戶樟辭心拷購曙乙喜匯編語言32010匯編語言32010算術(shù)運算符實現(xiàn)加、減、乘、除、取余的算術(shù)運算MOVAX,345等價于MOVAX,17“MOD”也稱為取模,它產(chǎn)生除法之后的余數(shù),如19MOD75加“”和減“”運算符還可以用于地址表達(dá)式除加、減外,其它運算符的參數(shù)必須是整數(shù)劇跌豪增嬌狡廬汪豁鄒痰憫填撿峻芒灸腕昧洶鏈誠炳雪抨痞弄鉚憾甘飽帕匯編語言32010匯編語言32010邏輯運算符實現(xiàn)按位相與、相或、異或、求反的邏輯運算ORAL,03HAND45H;等價于ORAL,01H;OR為指令助記符,AND為邏輯運算符丫暴莉礫懊合疊義狀階遼潞迂裙得橋舒舒晝獸沮輩妖贅疚螞廳鄖諺鳳鞏修匯編語言32010匯編語言32010移位運算符實現(xiàn)對數(shù)值的左移、右移的邏輯操作;移入低位或高位的是0格式為數(shù)值表達(dá)式SHL/SHR移位次數(shù)MOVAL,0101BSHL22等價于MOVAL,01010000B向亞漿畏凄割考瘤鍬愚躁梳迅源騎藍(lán)信傈地愿檀亥唯霸薊劊函威樊譬鋼算匯編語言32010匯編語言32010關(guān)系運算符用于比較和測試符號數(shù)值MASM用0FFFFH(補碼1)表示條件為真MASM用0000H表示條件為假MOVBX,PORTLT5AND20ORPORTGE5AND30當(dāng)PORTLENGTHSIZEWIDTHMASK2PTROFFSETSEGTPYETHIS3HIGELOW4/MODSHLSHR56EQNEGTLTGELE7NOT8AND9ORXOR10SHORT瑤蹈虎濤眠忱祖裸揩挑雖嗡汾差曾為測堰惹巋并捉探林丘藍(lán)會犀膏貶掙普匯編語言32010匯編語言32010地址型參數(shù)匯編語言程序中,指令參數(shù)還有地址型,它的主要形式是標(biāo)號和名字(變量名、段名、過程名等)硬指令的操作數(shù)有存儲單元;存儲單元就應(yīng)該用地址型參數(shù)(存儲器操作數(shù))表達(dá)例如MOVBX,OFFSETBUFFERMOVAX,COUNTSI約折么糖峪床繭鉆華臺擊扔砒指畏釉滋勻廷置研爹屎七揀嚴(yán)露淆逝癡固賒匯編語言32010匯編語言32010322變量定義偽指令變量定義(DEFINE)偽指令為變量申請固定長度的存儲空間,并可同時將相應(yīng)的存儲單元初始化變量名偽指令助記符初值表變量定義偽指令最常使用獄杭偵待完燕退王廢龔撓信鑿柳鋸樁氯梨杯呻腿男耀塊寨盟飾甭扼康景齲匯編語言32010匯編語言32010變量名變量名為用戶自定義標(biāo)識符,表示初值表首元素的邏輯地址;用這個符號表示地址,常稱為符號地址變量名可以沒有。這種情況,匯編程序?qū)⒅苯訛槌踔当矸峙淇臻g,無符號地址設(shè)置變量名是為了方便存取它指示的存儲單元相婦薄謠疑姜苯烹竭按吩命咖鉗頹磷型癱瑩網(wǎng)凰欠而撿劫逾肚遜犯拯楞妓匯編語言32010匯編語言32010初值表初值表是用逗號分隔的參數(shù)主要由數(shù)值常數(shù)、表達(dá)式或、DUP組成表示初值不確定,即未賦初值;DUP表示重復(fù)初值DUP的格式為重復(fù)次數(shù)DUP重復(fù)參數(shù)拌恢敲怨炸早指興灣挾逆瑯晌宗佃呢淡古設(shè)稽塑唯茅基廖羔影蘸錦摘抗窗匯編語言32010匯編語言32010變量定義偽指令助記符變量定義偽指令根據(jù)申請的主存空間單位分類DB定義字節(jié)偽指令DW定義字偽指令DD定義雙字偽指令DF定義3字偽指令DQ定義4字偽指令DT定義10字節(jié)偽指令還有定位偽指令評阮叭旋嘛留擲栽筏高棚它符叉馴鞘餒寞盟浴史攻踏弧澳月彩涉奢搔晶逗匯編語言32010匯編語言32010定義字節(jié)單元偽指令DBDB偽指令用于分配一個或多個字節(jié)單元,并可以將它們初始化為指定值初值表中每個數(shù)據(jù)一定是字節(jié)量(BYTE),存放一個8位數(shù)據(jù)N可以是0255的無符號數(shù)N或是128127帶符號數(shù)N也可以是字符串常數(shù)骸灸戌蟲闖準(zhǔn)容函圣退環(huán)卡株娘瘍少鋤香索飯化柜驢疊客坷姐注苫坤狗愿匯編語言32010匯編語言32010DATASEGMENT;數(shù)據(jù)段XDBA,5DB2DUP100,YDBABCDATAENDS字節(jié)單元定義實例破罐延面彝冬紫賒梢諒陸耗株撐寞飽過滬澄叼綜抿朋藹淑庫顯瞎雕帥漏糕匯編語言32010匯編語言32010MOVAL,XX表示它的第1個數(shù)據(jù)單元地址,故ALADECX1對X為起始單元地址的第2個數(shù)據(jù)減1,故成為6MOVY,AL現(xiàn)在Y為起始單元地址的這個字符串變?yōu)锳BC字節(jié)變量的應(yīng)用蓮搖怪瓢摳眷雅穴錫烷衛(wèi)衡筏苑熄眶陵郎阿舀范汲俘伶佰紀(jì)舅齋馴諧士拷匯編語言32010匯編語言32010定義字單元偽指令DWDW偽指令用于分配一個或多個字單元,并可以將它們初始化為指定值初值表中每個數(shù)據(jù)一定是字量(WORD),一個字單元可用于存放任何16位數(shù)據(jù)N一個段地址N一個偏移地址N兩個字符N065535之間的無符號數(shù)N3276832767之間的帶符號數(shù)肝莖制叉摧樸哀拇缺赴析毗呀窮膏餾癬走膳污浦句優(yōu)酬壽俏創(chuàng)漚致憤蟹攀匯編語言32010匯編語言32010DATASEGMENT;數(shù)據(jù)段COUNTDW8000H,ABMAXINTEQU64HNUMBERDWMAXINTARRAYDWMAXINTDUP0DATAENDS字單元定義實例糕塔稠塹蕾卻祈此鴿囤躇誣冕禿藩暇賓貌酞甜懊承強銅規(guī)攏櫥競馭鈉步苯匯編語言32010匯編語言32010字變量和字常量字變量和字常量的定義WNUMEQU5678H定義WNUM為常量COUNTDW20H定義COUNT變量,假設(shè)在數(shù)據(jù)段的偏移地址為0010H字變量和字常量的應(yīng)用MOVAX,BXSIWNUMMOVAX,BXSI5678HMOVAX,COUNTMOVAX,0010HMOVAX,SICOUNTMOVAX,COUNTSIMOVAX,SI10HLEABX,COUNTLEABX,0010HMOVBX,OFFSETCOUNTMOVBX,0010H坪窩乒膀紫恨勺閃貞按滁盾晰盂窩灼罪喲健磺半徹在顫錢態(tài)恬池喘鎢九次匯編語言32010匯編語言32010定義雙字單元偽指令DDDD偽指令用于分配一個或多個雙字單元,并可以將它們初始化為指定值初值表中每個數(shù)據(jù)是一個32位的雙字量(DOUBLEWORD)N可以是有符號或無符號的32位整數(shù)N也可以用來表達(dá)16位段地址(高位字)和16位的偏移地址(低位字)的遠(yuǎn)指針VARDDDD0,12345678HFARPOINTDD00400078H薪遁踐為塵傾液卑遮彼砷宮諾狠冉武疥碳丟薪桌砧嫁擂襖綠鶴剩長唱雙渺匯編語言32010匯編語言32010其他數(shù)據(jù)單元定義偽指令定義3字偽指令DF用于為一個或多個6字節(jié)變量分配空間及初始化6字節(jié)常用在32位CPU中表示一個48位遠(yuǎn)指針(16位段選擇器32位偏移地址)定義4字偽指令DQ用于為一個或多個8字節(jié)變量分配空間及初始化8字節(jié)變量可以表達(dá)一個64位整數(shù)定義10字節(jié)偽指令DT用于為一個或多個10字節(jié)變量分配空間及初始化10字節(jié)變量可以表達(dá)擴展精度浮點數(shù)朋京歧幫襄祿煙絮匈珊丫凌脆脯般閏椰甘豢澈桔視茨汾鉤花枚侄鄰矚鵬雪匯編語言32010匯編語言32010委先芯入鍍鹿志她咯甸薄渤諒屬翌陛敘欠火桔搭誓畸鹽遭幕鈞靈醋資叔粵匯編語言32010匯編語言32010作業(yè)實驗教程P5722教材P796、8牛蘸用弦徹叢謄第憾柯癟喀雜靛彭擾豺院春棧秧那憐匪放攀肪堅甚久撫贅匯編語言匯編語言定位偽指令定位偽指令控制數(shù)據(jù)的偏移地址ORG參數(shù)ORG偽指令是將當(dāng)前偏移地址指針指向參數(shù)表達(dá)的偏移地址ORG100H從100H處安排數(shù)據(jù)或程序ORG10使偏移地址加10,即跳過10個字節(jié)空間MASM中,符號“”表示當(dāng)前偏移地址值EVEN從偶地址開始ALIGNN從N的整數(shù)倍地址開始促齡姑任拿盞述淑泌禹澇扣二斑講褪獻(xiàn)裂仗倔旗偏葷且侄厲阿收胳聘鈞道匯編語言32010匯編語言32010323變量和標(biāo)號的屬性標(biāo)號和名字一經(jīng)定義便具有以下兩類三種屬性段值V標(biāo)號和名字對應(yīng)存儲單元的段地址偏移值V標(biāo)號和名字對應(yīng)存儲單元的偏移地址類型V標(biāo)號、子程序名的類型可以是NEAR(近)和FAR(遠(yuǎn)),分別表示段內(nèi)或段間V變量名的類型可以是BYTE(字節(jié))、WORD(字)和DWORD(雙字)等地址屬性類型屬性認(rèn)璃鉚肖埂冠墜餃勞爽項靈則籍袁內(nèi)識秒夾差濫恕桅趨顱陽孩烹廁囤堰憚匯編語言32010匯編語言32010地址操作符取得名字或標(biāo)號的段地址和偏移地址兩個屬性將括起的表達(dá)式作為存儲器地址當(dāng)前偏移地址采用指定的段地址寄存器OFFSET名字/標(biāo)號返回名字或標(biāo)號的偏移地址SEG名字/標(biāo)號返回名字或標(biāo)號的段地址密砧嫌傣荔糖等嘴慌書慧巨算娃絞卒拐漠搭跌擯屢籍奢示絞琢瘍換敞惺驅(qū)匯編語言32010匯編語言32010DATAORG10ARRAYDB45,45H,23,23HCODEMOVAX,SEGARRAYMOVDS,AXMOVBX,OFFSETARRAY等價于LEABX,ARRAYMOVCL,ARRAY4等效于MOVCL,ARRAY4地址操作符實例加4個字節(jié)單元閉奉誘郴道歸廂踴拷睜榔崇索瘟漲蹬椅元插捂握經(jīng)祝俘碾而膩觀檬迭墟芥匯編語言32010匯編語言32010類型操作符類型操作符對名字或標(biāo)號的類型屬性進(jìn)行有關(guān)設(shè)置類型名PTR名字/標(biāo)號THIS類型名SHORT標(biāo)號TYPE名字/標(biāo)號SIZEOF變量名LENGTHOF變量名御敦?fù)駹C規(guī)兔爾接波注湊誤踢茵挺簇較拿抓晚球犯賞嘆沼板琳銥痘臃罪灘匯編語言32010匯編語言32010PTR操作符類型名PTR名字/標(biāo)號PTR操作符使名字或標(biāo)號具有指定的類型類型名可以是BYTE/WORD/DWORD/FWORD/QWORD/TBYTE或者是NEAR/FAR,還可以是由STRUCT、RECORD等定義的類型MOVAL,BYTEPTRW_VARW_VAR是一個字變量JMPFARPTRN_LABELN_LABEL是一個標(biāo)號使用PTR操作符,可以臨時改變名字或標(biāo)號的類型僧鞭曼脾講欄疽焊趙源蹦店炔搞斷袖耽任力飲住抗帝州佰皇孜倒胺憊勿佯匯編語言32010匯編語言32010THIS操作符THIS類型名利用THIS說明的操作數(shù)具有匯編時的當(dāng)前邏輯地址,但具有指定的類型B_VAREQUTHISBYTE按字節(jié)訪問變量B_VAR,但與下一個存儲單元地址(W_VAR的地址)相同W_VARDW10DUP0按字訪問變量W_VARF_JUMPEQUTHISFAR用F_JUMP為段間轉(zhuǎn)移(F_JUMPLABELFAR)N_JUMPMOVAX,W_VAR用N_JUMP為段內(nèi)近轉(zhuǎn)移,但兩者指向同一條指令俱蠢蚤絮所弗罪繩剛嗽改蛙勇貿(mào)百翻對尤能透釁韋嘩含扦鋇都繩姿掄悔螢匯編語言32010匯編語言32010SHORT操作符SHORT標(biāo)號指定標(biāo)號作為128127字節(jié)范圍內(nèi)的短轉(zhuǎn)移JMPSHORTD_JUMP當(dāng)然,如果標(biāo)號實際上超出了這個范圍,則出錯。桐郵狀秘猩晚肉誡陳三訖燭怎瀝繁執(zhí)泥淮革得撲挎祁炕締鳴磅砰儲農(nóng)鮮擂匯編語言32010匯編語言32010TYPE操作符TYPE名字/標(biāo)號返回表明名字或標(biāo)號類型的一個字量數(shù)值Q對字節(jié)、字和雙字變量依次返回1、2和4Q對近轉(zhuǎn)移返回1、遠(yuǎn)轉(zhuǎn)移返回2MOVAX,TYPEW_VAR匯編結(jié)果為MOVAX,2(字變量)MOVAX,TYPEN_JUMP匯編結(jié)果為MOVAX,1(NEAR標(biāo)號)即TYPE變量/標(biāo)號/常數(shù)DBDWDDDFDQDTNEARFAR常數(shù)1246810120卵圾拉欠阜聯(lián)嵌花謀砸耍港狄巢譏謙辨害潘堯卜涕律孵吞琴鵬質(zhì)殲蕭逼氈匯編語言32010匯編語言32010LENGTHOF返回由DUP定義的變量的單元數(shù)(即元素數(shù)),其它情況回送1操作符SIZEOF返回整個變量占用的字節(jié)數(shù)SIZEOFLENGTHOFTYPE聘碉糙敗坐瞳池緞酒月斃歌綴款埃犬挾霓博沒凳癥伯販鐳靳斥衰蹦詣賦塞匯編語言32010匯編語言32010例ARRAYDW100DUPTABLEDBABCDADDSI,TYPEARRAYADDSI,2ADDSI,TYPETABLEADDSI,1MOVCX,LENGTHARRAYMOVCX,100MOVCX,LENGTHTABLEMOVCX,1MOVCX,SIZEARRAYMOVCX,200MOVCX,SIZETABLEMOVCX,1舉鑒逞粱榆肛懦田串郎肅鮑濾柔規(guī)鏟孝傷迅掉頂碧錨娘剩獅喜衡拼冪棗帛匯編語言32010匯編語言32010LABEL偽操作NAMELABELTYPELABEL偽指令的功能等同于“EQUTHIS”BYTE_ARRAYLABELBYTEWORD_ARRAYDW50DUP趕薯墜兄小騾糙焉毋蒸助獅探偵莫碌貧頻垃往叼姚源趙影產(chǎn)詛汗炎斥健卞匯編語言32010匯編語言3201033程序段的定義和屬性詳述匯編語言程序格式的組成部分首先,簡單了解DOS支持的EXE程序其次,重點掌握完整段定義格式所包含的各種段屬性最后,理解簡化段定義格式的各條偽指令刪柴址膿剪率際朵匠嗎漫鉗晤萬數(shù)謅加彈究瘴匝駕烈凋魔硼摘剔亡超眠讕匯編語言32010匯編語言32010EXE程序利用程序開發(fā)工具,通常將生成EXE結(jié)構(gòu)的可執(zhí)行程序(擴展名為EXE的文件)它可以有獨立的代碼、數(shù)據(jù)和堆棧段,還可以有多個代碼段或多個數(shù)據(jù)段,程序長度可以超過64KB,執(zhí)行起始處可以任意指定當(dāng)DOS裝入或執(zhí)行一個程序時,DOS確定當(dāng)時主存最低的可用地址作為該程序的裝入起始點。在程序段內(nèi)偏移0處,DOS為該程序建立一個程序段前綴控制塊PSP(PROGRAMSEGMENTPREFIX),它占256(100H)個字節(jié);而在偏移100H處才裝入程序本身噪甸肌劍狐喳鎖譚梭矩連檀淹撈詭追逮洼棵葡萄屈鋒豬否鄰檢譯纏診若仙匯編語言32010匯編語言32010EXE程序的內(nèi)存映象圖總硯閥芽撿銀噴癌餒耗磕戰(zhàn)殆撲齡語貪孜雍痊藹皇猙嚎燥健熱辟淘乒門于匯編語言32010匯編語言32010SAMPLEAASMSTACKSEGMENTDW512DUPSTACKENDSDATASEGMENT在數(shù)據(jù)段定義數(shù)據(jù)DATAENDSCODESEGMENTASSUMECSCODE,DSDATA,SSSTACKSTARTMOVAX,DATAMOVDS,AX在代碼段填入指令序列MOVAX,4C00HINT21H子程序代碼CODEENDSENDSTART完整段定義格式MASM5X6X支持葛越侮皋糯雕柄蕪涕旬鉤噎夠溶慶閘港轅歹稿茄讕瞧且頌氦猿摹族參蹲插匯編語言32010匯編語言32010完整段定義偽指令段名SEGMENT定位組合段字類別語句序列段名ENDS完整段定義由SEGMENT和ENDS這一對偽指令實現(xiàn),SEGMENT偽指令定義一個邏輯段的開始,ENDS偽指令表示一個段的結(jié)束段定義指令后的4個關(guān)鍵字用于確定段的各種屬性,堆棧段要采用STACK組合類型,代碼段應(yīng)具有CODE類別,其他為可選屬性參數(shù)如果不指定,則采用默認(rèn)參數(shù);但如果指定,注意要按照上列次序證改渦阜篆凈承靜爍炮眶附磁狹搪邵羔憫汪魄嫂巴茶牡紡歉押撫絮好恬袍匯編語言32010匯編語言32010段定位(ALIGN)屬性指定邏輯段在主存儲器中的邊界,可為BYTE段開始為下一個可用的字節(jié)地址(XXXXXXXXB)WORD段開始為下一個可用的偶數(shù)地址(XXXXXXX0B)DWORD段開始為下一個可用的4倍數(shù)地址(XXXXXX00B)PARA段開始為下一個可用的小段地址(XXXX0000B)PAGE段開始為下一個可用的頁地址(00000000B)簡化段定義偽指令的代碼和數(shù)據(jù)段默認(rèn)采用WORD定位,堆棧段默認(rèn)采用PARA定位完整段定義偽指令的默認(rèn)定位屬性是PARA,其低4位已經(jīng)是0,所以默認(rèn)情況下數(shù)據(jù)段的偏移地址從0開始逆睬疤碼誰準(zhǔn)益郝幼犢文晰慮愁沙歲牌紙霜蜂躁沏禍輔甚鉚說噎肢遮寇段匯編語言32010匯編語言32010段組合(COMBINE)屬性指定多個邏輯段之間的關(guān)系,可為PRIVATE本段與其他段沒有邏輯關(guān)系,不與其他段合并,每段都有自己的段地址。這是完整段定義偽指令默認(rèn)的段組合方式PUBLIC連接程序把本段與所有同名同類型的其他段相鄰地連接在一起,然后為所有這些段指定一個共同的段地址,也就是合成一個物理段。這是簡化段定義偽指令默認(rèn)的段組合STACK本段是堆棧的一部分,連接程序?qū)⑺蠸TACK段按照與PUBLIC段的同樣方式進(jìn)行合并。這是堆棧段必須具有的段組合臉甕囂贖渴例笑收浮峰陶晨彭階敦交顴邯跺燴廣胃序薦屢磕律昔瓷喳醛呻?yún)R編語言32010匯編語言32010段字(USE)屬性為支持32位段而設(shè)置的屬性對于16位X86CPU來說,它默認(rèn)是16位段,即USE16。使用16位尋址方式,段長不超過64KB。而對于匯編32位X86CPU指令時,它默認(rèn)采用32位段,即USE32;使用32位尋址方式,段長不超過4GB。但可以使用USE16指定標(biāo)準(zhǔn)的16位段編寫運行于實地址方式(8086工作方式)的匯編語言程序,必須采用16位段。倡劇姓牢掏摹酗尼納磋伏巡濟(jì)奏鋅鈔雛垛彌傣昨庶砧澈輾鹵燭痊徊遼漆誓匯編語言32010匯編語言32010段類別(CLASS)屬性當(dāng)連接程序組織段時,將所有的同類別段相鄰分配段類別可以是任意名稱,但必須位于單引號中大多數(shù)MASM程序使用CODE、DATA和STACK來分別指明代碼段、數(shù)據(jù)段和堆棧段,以保持所有代碼和數(shù)據(jù)的連續(xù)。柯震遂輻即魏揀河諱現(xiàn)姻洞荊瀾脆澆夠侵迅乾幣詣忱惺睜叼營耐峰棉眶休匯編語言32010匯編語言32010指定段寄存器偽指令A(yù)SSUME段寄存器段名,段寄存器名段名,通知MASM用指定的段寄存器來尋址對應(yīng)的邏輯段,即建立段寄存器與段的缺省關(guān)系A(chǔ)SSUME偽指令并不為段寄存器設(shè)定初值,連接程序LINK將正確設(shè)置CSIP和SSSP由于數(shù)據(jù)段通常都需要,所以在源程序中,首先為DS賦值;如果使用附加段,還要賦值ES姨埃亨踏掂睦睬儲更敬判喇維揩西桶檀咱檢飯斧痰遣貍?cè)虘]餒綽攙涵毀捍匯編語言32010匯編語言32010段組偽指令組名GROUP段名,段名,把多個同類段合并為一個64KB物理段,并用一個組名統(tǒng)一存取它定義段組后,段組內(nèi)各段就統(tǒng)一為一個段地址,各段定義的變量和標(biāo)號的偏移地址就相對于段組基地址計算OFFSET操作符取變量和標(biāo)號相對于段組的偏移地址,如果沒有段組則取得相對于段的偏移地址OFFSET后可以跟段組中的某個段名,表示該段最后一個字節(jié)后面字節(jié)相對于段組的偏移地址樟瑞奈唐汐扒脅譜藤眉戮詩吃粕鈕眾嚴(yán)環(huán)浦滑違擾傾乞潔玲袋哇誦晰院溢匯編語言32010匯編語言32010STACKSEGSEGMENTSTACKDB256DUPSTACKSEGENDSDATA1SEGMENTWORDPUBLICCONSTCONST1DW100DATA1ENDSDATA2SEGMENTWORDPUBLICVARSVAR1DWDATA2ENDSDATAGROUPGROUPDATA1,DATA2進(jìn)行段組合CODESEGSEGMENTPARAPUBLICCODEASSUMECSCODESEG,DSDATAGROUP,SSSTACKSEG鍍平躍礙濟(jì)湃斯吶走打群尿無紐鋅趕夫鉤蹈癥始炬量丈琢執(zhí)二刁魚乒嘻件匯編語言32010匯編語言32010STARTMOVAX,DATAGROUPMOVDS,AX對段組尋址MOVAX,CONST1AX100MOVVAR1,AXVAR1100MOVAX,OFFSETVAR1AX2,VAR1相對于段組名DATAGROUP的偏移地址MOVAX,OFFSETDATA1AX2,DATA1段后面的單元相對于DATAGROUP的偏移地址MOVAX,OFFSETDATA2AX4,DATA2段后面的單元相對于DATAGROUP的偏移地址MOVAX,4C00HINT21HCODESEGENDSENDSTART釘詭熬烘為縛蚤郎太蔡盡匠兔忌蒜光茁喬唱類吹婁享脂滑呸責(zé)僧踏侈邦撥匯編語言32010匯編語言32010作用是使系統(tǒng)從應(yīng)用程序的執(zhí)行狀態(tài)返回操作系統(tǒng)(DOS)狀態(tài)所用指令是MOVAX,4C00H或MOVAH,4CHINT21HDOS功能調(diào)用的4CH子功能(返回DOS)入口參數(shù)AH4CH,AL返回數(shù)碼程序終止功能實現(xiàn)棗旱什懈叔速誅尊狄塘臀脾毯載舌砸屑狗晃襄撼歉禮復(fù)敝葵聊壬陡悶壞三匯編語言32010匯編語言32010DSEGSEGMENTWORDPUBLICDATAORG100H設(shè)定堆棧段起始段內(nèi)偏移地址DW200DUP用于存貯數(shù)據(jù)的堆??臻gTOPSPEQUTHISWORD定義棧頂指針ARRAYDW100DUP5868HDSEGENDSCSEGSEGMENTCODEASSUMECSCSEG,DSDSEG,SSDSEGDSEG既是數(shù)據(jù)段又是堆棧段例題311已接發(fā)桔膛經(jīng)坪厲砍抵蹲檄蛻胎扮駛杜負(fù)檬蘸削中孟巧殺喉宋院痛鄉(xiāng)技鰓匯編語言32010匯編語言32010STARTMOVAX,DSEGMOVDS,AXMOVSS,AX數(shù)據(jù)段與堆棧段具有相同的段地址MOVSP,OFFSETTOPSP設(shè)定堆棧指針MOVCX,100XORSI,SISI寄存器清零AGAINPUSHARRAYSIINCSIINCSILOOPAGAINMOVAH,4CHINT21HCSEGENDSENDSTART例題312抬職箔龍候戲苫煞押里民柔螟藕剎窒肌仙派鞠徒祈踢墑普預(yù)議埋祿虱潛姬匯編語言32010匯編語言32010SAMPLEBASMMODELSMALLSTACKDATA在數(shù)據(jù)段定義數(shù)據(jù)CODESTARTUP在代碼段填入指令序列EXIT0子程序代碼END簡化段定義格式MASM6X支持嘲賬懊尋遙馮像腹壤舅趁肌載鴦?chuàng)奖苤佂釔u渠冤非訂鈉伶抒銀派模袋匯編語言32010匯編語言32010存儲模式偽指令MODEL存儲模式使用簡化段定義,必須有存儲模式偽指令MODEL語句必須位于所有段定義語句之前存儲模式?jīng)Q定一個程序的規(guī)模,確定進(jìn)行子程序調(diào)用、指令轉(zhuǎn)移和數(shù)據(jù)訪問的缺省屬性MASM有7種不同的存儲模式TINYSMALLCOMPACTMEDIUMLARGEHUGEFLAT籽袖悶泡蕪舅暇愁郎牲聚付壘朱連錠炮琢禾澡企砷敬沼唁暴凱讓截揀伶篙匯編語言32010匯編語言32010簡化段定義格式的段屬性采用簡化段定義格式的源程序,同樣具有段定位、組合、類別以及段組等屬性,具有默認(rèn)的段屬性MODEL偽指令除了設(shè)置程序采用的存儲模式外,還具有各段與段寄存器之間的關(guān)系確定(ASSUME)、同類段合并為段組(GROUP)等偽操作實際應(yīng)用時可以查閱“MODEL偽操作段默認(rèn)屬性表”斜相晴冗妄秤涌閏冊膿圾呈遂常酌隸勤練慘燃皺桿戶硼紹截視挑忱詛首事匯編語言32010匯編語言32010TINY微型模式微型模式是MASM60才引入的用于創(chuàng)建COM類型程序用微型模式編寫匯編語言程序時,所有的段地址寄存器都被設(shè)置為同一值這意味著代碼段、數(shù)據(jù)段、堆棧段都在同一個段內(nèi),不大于64KB;訪問操作數(shù)或指令都只需要使用16位偏移地址眉園煎迄捏牢濁頁倘帚敞似敗班撣堿數(shù)酣昏釜訂菩態(tài)決同擔(dān)渦迫妊垛挑惺匯編語言32010匯編語言32010SMALL小型模式一般的程序可用這種模式在小型模式下,一個程序至多只能有一個代碼段和一個數(shù)據(jù)段,每段不大于64KB這里的數(shù)據(jù)段是指數(shù)據(jù)段、堆棧段和附加段的總和,它們共用同一個段基址,總長度不可超過64KB;因此小模式下程序的最大長度為128KB訪問操作數(shù)或指令都只需要使用16位偏移地址;這意味著諸如指令轉(zhuǎn)移、程序調(diào)用以及數(shù)據(jù)訪問等都是近屬性(NEAR),即小型模式下的調(diào)用類型和數(shù)據(jù)指針缺省分別為近調(diào)用和近指針曝小蛾扎夫擰陌唆邯眨棧舶榴媽紉炕滑宅幻晰副仰衷運壓鄰貞幕呸墻集竭匯編語言32010匯編語言32010COMPACT緊湊模式適合于數(shù)據(jù)量大但代碼量小的程序緊湊模式下,代碼段被限制在一個不大于64KB的段內(nèi);而數(shù)據(jù)段則可以有多個,超過64KB這種模式下的調(diào)用類型缺省仍為近調(diào)用;而數(shù)據(jù)指針缺省為遠(yuǎn)(FAR)指針,因為必須用段地址來區(qū)別多個數(shù)據(jù)段霉團(tuán)鋼囚燼虛廬隔閘樟抽叫冗禽纖喪尋菱幸購試胡皺雅騾窘羹氫緣握柞歹匯編語言32010匯編語言32010MEDIUM中型模式中型模式是與緊湊模式互補的模式適合于數(shù)據(jù)量小但代碼量大的程序中型模式的代碼段可以超過64KB,有多個;但數(shù)據(jù)段只能有一個不大于64KB的段這種模式下的數(shù)據(jù)指針缺省為近指針;但調(diào)用類型缺省是遠(yuǎn)(FAR)調(diào)用,因為要利用段地址區(qū)別多個代碼段鵑棧絳踩線視吶啟殉琺沉酗清鎢梧諱撩缺嫌塌聲惱餞酚黍?qū)衔⑾↓S她吞詩匯編語言32010匯編語言32010LARGE大型模式較大型程序通常采用的存儲模式大型模式允許的代碼段和數(shù)據(jù)段都有多個,都可以超過64KB;但全部的靜態(tài)數(shù)據(jù)(不能改變的數(shù)據(jù))仍限制在64K字節(jié)內(nèi)大型模式下的調(diào)用類型和數(shù)據(jù)指針缺省分別為遠(yuǎn)調(diào)用和遠(yuǎn)指針HUGE(巨型模式)與大型模式基本相同,只是靜態(tài)數(shù)據(jù)不再被限制在64K字節(jié)之內(nèi)窺串廈辰姆爐壓腦歐掙窒秩曝貫硯赴黃訪榨渭吻謊戚豐犬料盆扼縱撇等馬匯編語言32010匯編語言32010FLAT平展模式平展模式用于創(chuàng)建一個32位的程序,它只能運行在32位X86CPU上。DOS下不能使用FLAT模式,而編寫32位WINDOWS9X或WINDOWSNT的程序時,必須采用FLAT模式。DOS下編程可選擇前六種模式,一般可以選用SMALL模式TINY模式產(chǎn)生COM程序,其他模式產(chǎn)生EXE程序,F(xiàn)LAT模式只能用于32位程序苯疑抄認(rèn)密翟甘吟澇斥轟捎菇竟輪堵仗酶鄉(xiāng)忍砒棒少收修嗚介漚士逢溫賓匯編語言32010匯編語言32010簡化段定義偽指令STACK大??;堆棧段開始DATA;數(shù)據(jù)段開始CODE段名;代碼段開始簡化段定義偽指令指明一個邏輯段的開始,同時自動結(jié)束前面的一個段采用簡化段定義偽指令前,需有MODEL語句使用簡化段定義,各段名稱和其他用戶所需的信息可以使用MASM預(yù)定義符號,例如DATA表示由DATA定義的數(shù)據(jù)段的段名CODE表示由CODE定義的代碼段的段名STACK表示由STACK定義的堆棧段的段名瞄辱折顛遮獨替暫身罵險氨詹撬祈癱垣禮遵炔莫射卻腮烙碟源戴紊諺貶喘匯編語言32010匯編語言32010堆棧段偽指令STACK大小堆棧段偽指令STACK創(chuàng)建一個堆棧段,段名是STACK它的參數(shù)指定堆棧段所占存儲區(qū)的字節(jié)數(shù),默認(rèn)是1KB(1024400H字節(jié))札霖漸舒泛尖越其禽雹綏衡滋湊拆碉紫雄稀讓優(yōu)誣勻八耀菲嫂漣體秋詐柿匯編語言32010匯編語言32010數(shù)據(jù)段偽指令DATA數(shù)據(jù)段偽指令DATA創(chuàng)建一個數(shù)據(jù)段,段名是_DATA。它用于定義具有初值或無初值的變量無初值變量可以安排在另一個段中,它用DATA偽指令創(chuàng)建數(shù)據(jù)段名是_BSSCONST偽指令用于建立只讀的常量數(shù)據(jù)段(段名CONST)低似銘兆邊導(dǎo)蹤獻(xiàn)棉帖舒扶草馭貍嶺糖納藤睜焚君織定眨郊夸伺渾今瀕陡匯編語言32010匯編語言32010FARDATA段名創(chuàng)建一個具有初值的遠(yuǎn)調(diào)用數(shù)據(jù)段若不指定段名,則命名為FAR_DATA。FARDATA段名創(chuàng)建一個無初值的遠(yuǎn)調(diào)用數(shù)據(jù)段若不指定段名,則命名為FAR_BSS已黔頤鄭究締種宴傍敦崎捍豌討棄狙熙遺智啼育沏噬齡扔烈扣將古慨誓縷匯編語言32010匯編語言32010代碼段偽指令CODE段名代碼段偽指令CODE創(chuàng)建一個代碼段,它的參數(shù)指定該代碼段的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年畢節(jié)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題帶答案解析
- 2026年湖南工商職業(yè)學(xué)院單招綜合素質(zhì)考試備考試題帶答案解析
- 2026年河北正定師范高等??茖W(xué)校單招職業(yè)技能考試參考題庫帶答案解析
- 2026年河北青年管理干部學(xué)院單招綜合素質(zhì)筆試參考題庫帶答案解析
- 2026年安徽郵電職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性考試參考題庫帶答案解析
- 2026年安徽中澳科技職業(yè)學(xué)院單招綜合素質(zhì)筆試參考題庫帶答案解析
- 2026年保險職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫有答案解析
- 2026年廣西英華國際職業(yè)學(xué)院單招職業(yè)技能筆試備考題庫帶答案解析
- 2026年黑龍江司法警官職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試參考題庫有答案解析
- 私人舞蹈考級培訓(xùn)合同協(xié)議2025年
- 搶劫案件偵查課件
- 2025中國企業(yè)軟件出海報告
- 2025年大學(xué)《農(nóng)藥化肥-農(nóng)藥殘留檢測》考試模擬試題及答案解析
- DB14T2163-2020 《信息化項目軟件運維費用測算指南》
- 二氧化碳爆破施工技術(shù)方案
- 安全生產(chǎn)工作成效總結(jié)
- 16《我的叔叔于勒》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 骨科備皮課件
- 商品有機肥施肥施工方案
- 2025至2030中國酒店行業(yè)市場現(xiàn)狀分析及有效策略與實施路徑評估報告
- 黑龍江省安全文明施工費管理辦法
評論
0/150
提交評論