国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微機實驗第一章:匯編程序的建立和簡單的順序結構匯編程序設計(B站)

這篇具有很好參考價值的文章主要介紹了微機實驗第一章:匯編程序的建立和簡單的順序結構匯編程序設計(B站)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

作為一名在校大學生,我將近期所學的知識進行總結。
一年之后我再看這些代碼,我發(fā)現這些代碼對于初學者十分友好。因此,我將這些代碼分享給大家,希望大家能有所收獲。如有不足,歡迎交流。

推薦可以看這位B站up主的視頻學習匯編

B站up主

提示:以下是本篇文章正文內容,下面案例可供參考

一、拆字程序

題目要求

例如:單元data的內容為27H,將其高、低兩位拆出后,分別存放到dataH和dataL中。編寫程序,執(zhí)行后,dataL 的內容應為低位07H,dataH的內容應為高位02H。

程序代碼和運行結果

1.1代碼如下(示例):

; multi-segment executable file template.

data segment   
     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    var DB 27H
    varL DB 00H
    varH DB 00H
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    MOV AL,var    ;取變量的低4位
    AND AL,0FH
    MOV varL,AL   
    
    MOV AH,var     ;取變量的高四位
    AND AH,0F0H    ;不能以字母直接開頭,要加0 
    SHR AH,4       ;右移四位,不然 varH 就變成02H
    MOV varH,AH
   
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

1.1運行結果

簡單匯編程序,emu8086,單片機,51單片機,arm開發(fā)

二、拼字程序

題目要求

例如:將兩個地址單元dataH和dataL中存放的數字,理解為一個兩位16進制數的高、低

位,通過拼字,將其組裝為一個數。并存入data中。

dataL的內容為低位07H,dataH的內容為高位02H,單元data用于存放拼字的結果,編程執(zhí)行效果,應在data單元中存儲數據27H。

程序代碼和運行結果

1.2程序代碼

; multi-segment executable file template.

data segment    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    varL DB 07H
    varH DB 02H
    var DB 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
ends



code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    

    MOV AL,varL  
    MOV var,AL    ;將低位數據的值賦值var
    
    MOV AL,varH   ;將高位數據的值賦值var
    SHL AL,4      ;將低四位數字移到高四位
    ADD var,AL
                                                      
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                                                    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

1.2運行截圖
簡單匯編程序,emu8086,單片機,51單片機,arm開發(fā)

三、計算表達式

題目要求

編寫程序實現 W=((B1+B2-B3)/B4*B5)2 , Bi為字節(jié)型變量,W為雙字變量,不考慮溢出問題。

程序代碼和運行結果

1.3程序代碼

; multi-segment executable file template.

data segment
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   
B1 DB 12H
B2 DB 1CH
B3 DB 1FH
B4 DB 03H
B5 DB 4AH
W  DD ?     ;題目要改成雙字


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;     

    MOV AL,B1
    ADD AL,B2
    SUB AL,B3   ;AL=B1+B2-B3   
    
    XOR AH,AH   ;AH清0 因為被除數要放入AH中 
    DIV B4      ;默認被除數是在AX當中的   
    ;除數在B4   結果:商在AL   余數在AH中
    
    MUL B5      ;字節(jié)*字節(jié) ==;結果為字   就要按照字的乘法進行處理   
    MUL AX      ;( (B1+B2-B3) /B4*B5 )^2   
    
    MOV W,AX      ;存放低字節(jié)
    MOV W+2,,DX   ;存放高字節(jié)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

1.3運行結果

簡單匯編程序,emu8086,單片機,51單片機,arm開發(fā)

四、計算表達式

題目要求

已知當前數據段中有一個十進制數字0-9的7段代碼表,其數值分別為40H,79H,24H,30H,19H,12H,02H,78H,00H,18H,要求利用XLAT指令,將十進制數字57轉換成相應的7段代碼值,存到BX寄存器中,寫出響應的程序段。

程序代碼和運行結果

1.4程序代碼

; multi-segment executable file template.

data segment
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

table DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H
var DB 57H                                        

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ends


code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    MOV AL,var
    AND AL,0F0H
    SHR AL,4
    
    MOV BX,OFFSET table
    XLAT                  ;查找高四位
    MOV DH,AL             ;將高四位賦值到DH中
    
    MOV AL,var
    AND AL,0FH
    XLAT                  ;查找低四位   
    MOV DL,AL             ;將低四位賦值到DL中
    
    MOV BX,DX
         
         
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

1.4運行結果
簡單匯編程序,emu8086,單片機,51單片機,arm開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-742277.html

到了這里,關于微機實驗第一章:匯編程序的建立和簡單的順序結構匯編程序設計(B站)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 實驗一8086計CPU系統(tǒng)尋址方式和匯編語言程序設計

    實驗一8086計CPU系統(tǒng)尋址方式和匯編語言程序設計

    實驗一8086計CPU系統(tǒng)尋址方式和匯編語言程序設 一、實驗目的 (1)掌握8086CPU系統(tǒng)的邏輯地址和尋址方式。 (2)掌握8086CPU系統(tǒng)中機器數的表示方式。 (3)掌握指令的機器碼表示方法。 (4)掌握堆棧的概念和操作過程。 (5)掌握集成開發(fā)環(huán)境下的程序設計和調試方法。 (6)掌握匯編語言實

    2023年04月22日
    瀏覽(23)
  • 匯編語言實驗8:BIOS/DOS功能調用與宏指令程序設計

    匯編語言實驗8:BIOS/DOS功能調用與宏指令程序設計

    掌握匯編語言程序設計的基本方法和技能 掌握匯編語言源程序的編輯匯編連接和執(zhí)行的完整過程 通過上機操作理解宏定義、宏調用、宏展開的概念,熟練運用宏功能編寫程序 掌握BIOS/DOS基礎功能的實現調用方法 理解常用的DOS功能調用的基本使用,能熟練運用1號,2號,9號,

    2024年02月03日
    瀏覽(45)
  • ARM匯編 : 匯編指令,偽指令,匯編程序格式

    ARM匯編 : 匯編指令,偽指令,匯編程序格式

    計算機的指令集一般可分為4種: 復雜指令集(CISC) 精簡指令集(RISC) 顯式并行指令集(EPIC) 超長指令字指令集(VLIW) ARM指令集屬于RISC,RISC相對于CISC指令集,主要有以下特點: ●Load/Store架構,CPU不能直接處理內存中的數據,要先將內存中的數據Load(加載)到寄存器中

    2024年02月12日
    瀏覽(19)
  • <微機原理>[匯編語言]-[實驗八]矩陣鍵盤應用實驗

    <微機原理>[匯編語言]-[實驗八]矩陣鍵盤應用實驗

    實驗八 矩陣鍵盤應用實驗.doc 掌握矩陣式鍵盤識別技術 進一步掌握數碼管顯示原理 Keil5 普中A2開發(fā)板 stc-isp 用單片機的并行口P1接矩陣鍵盤,在數碼管上顯示每個按鍵的“0—F”序號。對應的按鍵的序號排列如圖所示: 使用EQU偽指令重新命名R0為KEY_VALUE方便代碼后續(xù)的理解。

    2024年02月10日
    瀏覽(17)
  • [ARM 匯編]高級部分—性能優(yōu)化與調試—3.4.2 ARM匯編程序調試技巧

    [ARM 匯編]高級部分—性能優(yōu)化與調試—3.4.2 ARM匯編程序調試技巧

    在ARM匯編程序開發(fā)過程中,調試是一個關鍵環(huán)節(jié)。適當的調試技巧可以幫助我們更快地定位問題、解決問題,從而提高開發(fā)效率。本節(jié)將講解一些ARM匯編程序的調試技巧,并通過實例進行講解。 使用GDB調試 GDB(GNU調試器)是一個功能強大的調試工具,它支持ARM匯編程序的調

    2024年02月10日
    瀏覽(28)
  • nas匯編程序的調試排錯方法

    nas匯編程序的調試排錯方法

    nas匯編程序的調試排錯方法: 1、查找是哪一步錯了 2、查看對應的*.lst文件,本例中是\\\"asmhead.lst\\\" 3、根據*.lst文件的[ERROR #002]提示查看源碼,改錯。 4、重新運行編譯,OK nask.exe編譯匯編程序時出錯了 在文件中根據\\\"[ERROR\\\"查找就可以了。 E:techdoc30dayOScodeday03boyIasmhea

    2024年02月09日
    瀏覽(16)
  • <微機原理>[匯編語言]-[實驗七]數碼管動態(tài)顯示實驗

    <微機原理>[匯編語言]-[實驗七]數碼管動態(tài)顯示實驗

    實驗一 軟件開發(fā)環(huán)境和簡單程序設計 實驗二 I_O輸入輸出實驗 實驗三 鍵盤掃描顯示實驗 實驗四 中斷實驗 實驗五 定時器實驗 實驗六 串行口實驗 實驗七 數碼管動態(tài)顯示實驗 實驗八 矩陣鍵盤應用實驗 實驗九 電子時鐘 微機原理實驗課程,會陸續(xù)根據目錄更新文章 掌握LED八段

    2024年02月07日
    瀏覽(28)
  • C/C++源程序到可執(zhí)行程序exe的全過程(及匯編和反匯編的區(qū)別)

    C/C++源程序到可執(zhí)行程序exe的全過程(及匯編和反匯編的區(qū)別)

    1.C/C++源程序到可執(zhí)行程序exe的全過程(及匯編和反匯編的區(qū)別) 一個現代編譯器的主要工作流程如下: 源程序(source code)→預處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標程序(object code)→連接器(鏈接器,Linker)→可執(zhí)行程序(executables)。 簡

    2024年02月10日
    瀏覽(20)
  • 【proteus】8086 寫一個匯編程序并調試

    【proteus】8086 寫一個匯編程序并調試

    參考書籍:微機原理與接口技術——基于8086和Proteus仿真(第3版)p103-105,p119-122. 參考程序是p70,例4-1 在上一篇的基礎上:? 創(chuàng)建項目和匯編文件 ?雙擊8086的元件圖: 可以修改size? 比如這里修改成: 在asm中寫一個簡單的匯編程序: 編譯: ?編譯通過: 選中內存和寄存器窗

    2024年02月08日
    瀏覽(15)
  • 單片機匯編延時程序算法詳解

    在單片機編程中,延時程序是一項常見的任務。它用于控制程序在執(zhí)行期間暫停一段時間,以實現特定的時間延遲。延時程序在許多應用中都非常有用,例如控制LED的閃爍頻率、定時器的計時等。本文將詳細介紹單片機匯編語言中延時程序的算法,并提供相應的源代碼。 延時

    2024年02月04日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包