匯編程序設計
① 關於匯編程序設計
第8題:
①先在屏幕顯示一行字元,長度和顯示位置自己定
②讓行首的一個字元移動到行尾進行顯示(這是從屏幕左邊到右邊),設置好延時,重復上面的動作,在移動程序內部設置好停止移動的條件。或者你可以整體將字元串向前移動一格,同樣設置好延時,重復操作
② 匯編語言程序設計:作業
1、操作數的類型不確定;
2、cx不能作為定址寄存器;
3、兩個操作數的類型不匹配;
4、mov指令的兩個操作數不能同為內存單元;
5、只可能是B
③ 匯編程序設計,高手幫忙!!!!
上面沒一個是用的匯編。。。。
④ 匯編語言程序設計步驟 有那幾步
匯編語言程序設計步驟: 1、 分析問題,抽象出描述問題的數據模型 2、 確定問題的演算法思想 3、 畫出流程圖或結構圖 4、 分配存儲器和工作單元(寄存器) 5、 逐條編寫程序 6、 靜態檢查,上機調試 例:編程查找考生的最高分,假設所有考生分數已存入計算機內存。 1、 分析問題 根據條件、特點、規律 →數學模型 本例分數已給定為0~200之間的整數集合(考慮加試分) ,記為{S},找max{S}(註: 簡單問題不一定寫數學模型) 。 2、 確定演算法思想 最好利用現成演算法和程序設計方法,若無,則需根據實踐經驗總結演算法思想。如本例, 從成績單第一分數往下看,邊看邊比較,記住較高分,舍棄較低分,直至看完,最高分存於 腦中。歸納演算法思想:建立數據指針並指向數據區首地址。將第一數取入寄存器(如AL) , 與下一數比較,若下一數大則將其取入寄存器,否則調整指針,再與下一數比較,重復上述 過程,直至比較完畢,寄存器中即最高分。 讀分數用MOV指令,比較用CMP指令,分析判斷用條件轉移指令。 3、 畫流程圖或結構圖 有邏輯流程、演算法流程、程序流程等,復雜問題需畫模塊結構。本例簡單,只畫出程序 流程圖(用模塊化結構的N-S流程圖表示) : 本例的N-S流程圖 圖中初始化包括:設一個計數器,將分數個數減一後送計數器,每比較一次減一,至 零查找結束;建立一個指針指向數據區。 開始 初始化 取第一數到寄存器 與下一數比較 下一數大? 是 否 取大數到寄存器 修改指針,計數次數減一 返回到循環體開始,直到計數次數為0退出循環 結束 4、 分配存儲器空間和工作單元(寄存器) 定義數據段、堆棧段、代碼段等。工作單元一般用寄存器。本例:分數放數據段,建100 位元組堆棧空間,BX作數據指針,CX作計數器,AL放最高分。 5、 逐條編寫程序 DATA SEGMENT FEN DB 85,90,60,75,87,35,80,78,96,82…… ;存分數 MAX DB ? ;存最高分 DATA ENDS STACK SEGMENT PARA STACK 『STACK』 DB 100 DUP(?) ;100位元組堆棧 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS MOV AX,0 PUSH AX ;為了返回DOS MOV AX,DATA MOV DS,AX ;置數據段寄存器 MOV BX,OFFSET FEN ;置數據指針 MOV CX,MAX-FEN ;置計數器初值 DEC CX ;N個分數比較N-1次 MOV AL,[BX] ;取第一個分數 LOP: INC BX ;調整指針 CMP AL,[BX] ;與下一數比較 JAE NEXT ;大於等於則轉 MOV AL,[BX] ;否則取下一數 NEXT: LOOP LOP ;計數器減一, ;不為零轉LOP MOV MAX,AL ;存放最高分 RET ;返回DOS START ENDP CODE ENDS END START 6、 靜態檢查,上機調試 選用指令盡量位元組少,使其執行速度快。易錯處應重點查,如比較次數、轉移條件等。 確信無錯後方可上機調試。
⑤ 匯編語言程序設計中使用哪種軟體工具
1、MASM。
微軟公司為x86微處理器家族開發的匯編開發環境,擁有可視化的開發界面,使開發人員不必再使用DOS環境進行匯編的開發,編譯速度快,支持80x86匯編以及Win32Asm,是Windows下開發匯編的利器。
2、NASM。
全稱The Netwide Assembler,是一款基於80x86和x86-64平台的匯編語言編譯程序,其設計初衷是為了實現編譯器程序跨平台和模塊化的特性。
3、TASM。
Borland公司開發的匯編編譯器,被廣泛用於Turbo C,Quick Basic等編譯器,用作中間過渡編譯。它也能獨立的編譯純匯編或是Win32Asm的代碼。具有編譯快速,高效的特點,至今依然是匯編開發的首選利器。
4、GAS。
GNU匯編器(GNU Assembler),簡稱為GAS,是由GNU計劃所使用的匯編器,GNU的核心精神是自由與分享,所以GAS亦是自由軟體。
5、RadASM。
一款著名的WIN32匯編編輯器,支持MASM、TASM等多種匯編編譯器,Windows界面,支持語法高亮,自帶一個資源編輯器和一個調試器。擁有較強的工程管理功能,加之眾多插件的支持,使得它用匯編語言編寫Windows軟體變得得心應手。
⑥ 匯編語言程序設計
一.
1.ADD BX,AX 或 ADD BL,AL ;類型配對
2.MOV AX,0A999H
3.MOV AX,0F8H
4.MOV AX,1234H 或 MOV AL,12H
5.MOV AX,[BX]
6.MOV DS,AX ;DS不能直接存立即數
7.ADD [BX],10 ;對
8.PUSH AX ;push不能直接push立即數
9.IN AL,DX
10.OUT 40H ,AL
11.MUL AL ;mul不能直接跟立即數
12.MOV [DI],AX ;mov不能兩個都是內存
13.ADD DI,AX
14.MOV DS,AX ;CS不可以改
15.SUB 10[SI],AX ;si di 不可以同時出現
二.
SUB [BP], BX 寄存器間接定址方式;30400H;
MOV [BX+DI], SI 基址變址定址方式;10400H;
ADD ES:[SI], DI 寄存器相對定址方式;20200H;
MOV 10[BX], DI 寄存器相對定址方式;10100H;
MOV DS:[100H], BX 相對基址變址定址方式;10100H
三.
3456H;5678H;1234H;5678H;
四.
1234H;2468H;0008H;1008H;0804H;0408H;0508H;0508H
五.
01H,31H,0FFH,00H,78H,56H,FFH,FFH,00H,24H,00H,0BH,00H,0BH,19H,09H,09H
(從左往右地址變大)
AX=3101H,BX=0023H
六.
1.
匯編語言:(AssemblyLanguage)是面向機器的程序設計語言。
匯編:把匯編語言翻譯成機器語言的過程稱為匯編。
匯編程序:把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序。匯編程序輸入的是用匯編語言書寫的源程序,輸出的是用機器語言表示的目標程序。匯編語言是為特定計算機或計算機系列設計的一種面向機器的語言,由匯編執行指令和匯編偽指令組成。採用匯編語言編寫程序雖不如高級程序設計語言簡便、直觀,但是匯編出的目標程序佔用內存較少、運行效率較高,且能直接引用計算機的各種設備資源。它通常用於編寫系統的核心部分程序,或編寫需要耗費大量運行時間和實時性要求較高的程序段。
2.
3.
單獨cmpsb就是逐一比較8個位;加上rep,循環比較,還是比較這8位啊
4.
是指在計算機執行期間,系統內發生任何非尋常的或非預期的急需處理事件,使得CPU暫時中斷當前正在執行的程序而轉去執行相應的時間處理程序。待處理完畢後又返回原來被中斷處繼續執行或調度新的進程執行的過程。
5.
宏和子程序都是為了簡化源程序的編寫,提高程序的可維護性,但是它們二者之間存在著以下本質的區別:
1、在源程序中,通過書寫宏名來引用宏,而子程序是通過CALL指令來調用;
2、匯編程序對宏通過宏擴展來加入其定義體,宏引用多少次,就相應擴展多少次,所以,引用宏不會縮短目標程序;而子程序代碼在目標程序中只出現一次,調用子程序是執行同一程序段,因此,目標程序也得到相應的簡化;
3、宏引用時,參數是通過「實參」替換「形參」的方式來實現傳遞的,參數形式靈活多樣,而子程序調用時,參數是通過寄存器、堆棧或約定存儲單元進行傳遞的;
4、宏引用語句擴展後,目標程序中就不再有宏引用語句,運行時,不會有額外的時間開銷,而子程序的調用在目標程序中仍存在,子程序的調用和返回均需要時間。
總之,當程序片段不長,速度是關鍵因素時,可採用宏來簡化源程序,但當程序片段較長,存儲空間是關鍵因素時,可採用子程序的方法來簡化源程序和目標程序。
七.
…………
⑦ 匯編語言是程序設計語言中的一種什麼
匯編語言是用英語縮寫助記符表示機器指令的低級語言.
⑧ 匯編語言程序設計題
我寫的有點長,經驗證,運行無誤。
代碼貼在:任意兩個10位以內十六進制數求和
http://tieba..com/f?kz=681706003
如是能用的,請頂一下。
為了方便修改,新代碼直接貼在我的網路空間。
新代碼添加了無輸入處理和清除前導空格指令。
經驗證,無樓主提到的『1111111111+1111111111=42222222222』
的BUG,顯示運算結果准確。
附言:21H的10號(0AH)功能,無法濾除:G~Z,所以不能用;
湯旺河邊 錯在: rcl al,1 ;把進位標志移入AL.
⑨ 匯編程序設計
好幾年沒接觸匯編了...
⑩ 匯編語言是一種什麼程序設計語言
匯編語言是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。
比起機器語言,匯編語言具有更高的機器相關性,更加便於記憶和書寫,但又同時保留了機器語言高速度和高效率的特點。
匯編語言仍是面向機器的語言,很難從其代碼上理解程序設計意圖,設計出來的程序不易被移植,故不像其他大多數的高級計算機語言一樣被廣泛應用。所以在高級語言高度發展的今天,它通常被用在底層,通常是程序優化或硬體操作的場合。
(10)匯編程序設計擴展閱讀:
在許多程序的設計當中,高級語言和匯編語言可以相互交叉調用,進行參數傳遞,共享數據信息,這便是所謂的混合編程。
程序員往往在高級語言程序中直接嵌入匯編語句,以實現對硬體直接進行控制的功能,這是混合編程中常見的做法。也可以在高級語言程序中使用匯編語言中定義的變數和常量,或使用內部函數對匯編語句進行調用。
簡而言之,這類混合編程的方法可以讓高級語言與匯編語言互相取長補短,各自發揮各自優勢,同時減少各自缺點所帶來的不便,善用這個方法可以使開發和編程工作達到事半功倍的效果。