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

微機(jī)實(shí)驗(yàn)第二章:循環(huán)、分支程序和常用的DOS功能調(diào)用(B站)

這篇具有很好參考價值的文章主要介紹了微機(jī)實(shí)驗(yàn)第二章:循環(huán)、分支程序和常用的DOS功能調(diào)用(B站)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


前言

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

推薦可以看這位B站up主的視頻學(xué)習(xí)匯編

B站up主

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

一、利用DOS調(diào)用實(shí)現(xiàn)簡單的加法

2.1題目要求

(1)輸出提示信息“Please input A” (功能號09H)
(2)利用 01H功能,獲取輸入 A
(3)對輸入A進(jìn)行處理實(shí)現(xiàn)ASCII碼到數(shù)值的轉(zhuǎn)換
(4)輸出提示信息“Please input B”
(5)利用 01H功能,獲取輸入 B
(6)對輸入B進(jìn)行處理實(shí)現(xiàn)ASCII碼到數(shù)值的轉(zhuǎn)換
(7)計(jì)算A+B并實(shí)現(xiàn)十六進(jìn)制數(shù)到BCD碼的轉(zhuǎn)換
(8)將BCD碼轉(zhuǎn)換為ASCII碼,并利用02H功能進(jìn)行顯示

2.1程序代碼和運(yùn)行結(jié)果

2.1代碼如下(示例):

; multi-segment executable file template.

data segment
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIPS1  DB 'Please input A',0DH,0AH,'$'                                ;TIPS(提示信息)                     
                                                                ;ODH 回車    ;0AH換行
TIPS2  DB 'Please input B',0DH,0AH,'$'    

TIPS3  DB 'RESULT IS',0DH,0AH,'$'                  

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


code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;數(shù)據(jù)A的輸入
    MOV DX,OFFSET TIPS1    
    MOV AH,09H       ;利用09H的功能,將提示信息顯示出來
    INT 21H
    
    MOV AH,01H       ;利用01H的功能,讀取一個字符
    INT 21H         
    
    AND AL,0FH       ;因?yàn)樗且粋€ascall值,所以將高四位屏蔽,只保留低四位                         
    MOV BL,AL        ;將數(shù)據(jù)暫存放到 BL 當(dāng)中   
    
    ;數(shù)據(jù)B的輸入      
    
    MOV DL,0DH        ;回車
    MOV AH,02H
    INT 21H
    
    MOV DL,0AH         ;換行
    MOV AH,09H
    INT 21H
    
    
    MOV DX,OFFSET TIPS2    
    MOV AH,09H       ;利用09H的功能,將提示信息顯示出來
    INT 21H
    
    MOV AH,01H       ;利用01H的功能,讀取一個字符
    INT 21H         
    
    AND AL,0FH       ;因?yàn)樗且粋€ascall值,所以將高四位屏蔽,只保留低四位  數(shù)據(jù)暫存放到 AL 當(dāng)中    
    
 
    ADD AL,BL        ;A+B    
    MOV AH,00H       ;AH清0
    AAA              ;將計(jì)算結(jié)果換為非壓縮的BCD碼的形式
    ADD AX,3030H     ;將數(shù)據(jù)轉(zhuǎn)化為ASCALL碼
    MOV BX,AX        ;將數(shù)據(jù)暫存放到BX
    
    ;結(jié)果顯示    
    
    MOV DL,0DH             ;回車
    MOV AH,02H
    INT 21H
    
    MOV DL,0AH             ;換行
    MOV AH,09H
    INT 21H
    
    MOV DX,OFFSET TIPS3    ;提示信息
    MOV AH,09H
    INT 21H
    
    MOV DL,BH
    MOV AH,02H
    INT 21H   
    
    MOV DL,BL
    MOV AH,02H
    INT 21H
      
    ;退出DOS
    MOV AH,4CH      
    INT 21H
                          
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

2.1運(yùn)行結(jié)果
emu80861、利用dos調(diào)用實(shí)現(xiàn)簡單的加法: (1)輸出提示信息“please input a”(功能,emu8086,arm,arm開發(fā),單片機(jī)

二、求某數(shù)據(jù)區(qū)內(nèi)負(fù)數(shù)的個數(shù)

2.2題目要求

設(shè)數(shù)據(jù)區(qū)的BUF中存放著N+1個單字節(jié)數(shù)據(jù),第一個字節(jié)存放數(shù)據(jù)長度N。從第二個字節(jié)開始依次存放著N個數(shù)據(jù)。設(shè)計(jì)程序根據(jù)數(shù)據(jù)最高位是否為1,統(tǒng)計(jì)N個數(shù)據(jù)中有多少個負(fù)數(shù),將結(jié)果存放在RESULT單元中。

2.2程序代碼和運(yùn)行結(jié)果

2.2代碼如下(示例):

; multi-segment executable file template.

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

BUF DB 10   ;定義了10個數(shù)字
    DB 2,3,6,-45,-78,-9,3,5,-10,9     ;10個數(shù)分別是
result DB 0

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



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

    MOV SI,OFFSET BUF      ;將BUF首地址送給SI     
    
    MOV CH,00H      ;題目要求,第一個數(shù)是指循環(huán)的次數(shù),因此應(yīng)該放到CX寄存器中      
    MOV CL,[SI]     ;但是CX是一個字,BUF是一個字節(jié),會被轉(zhuǎn)化為字在給CX賦值      
     
    INC SI                ;  SI++
    MOV BL,00H            ;BL清0  
    
xh:MOV AL,[SI]       
    CMP AL,80H          ;判斷AL里面值的大小
    JB  zhengshu               ;小于80H說明是正數(shù),不用操作   
    INC BL                  ;BL用于統(tǒng)計(jì)負(fù)數(shù)的個數(shù)。因此BL++
zhengshu:INC SI             ;正數(shù)的,SI的地址++
    LOOP xh                 
    
    MOV result,BL 
            
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

2.2運(yùn)行結(jié)果

emu80861、利用dos調(diào)用實(shí)現(xiàn)簡單的加法: (1)輸出提示信息“please input a”(功能,emu8086,arm,arm開發(fā),單片機(jī)

三、編寫一個循環(huán)結(jié)構(gòu)的程序

2.3題目要求

請編寫一個循環(huán)結(jié)構(gòu)的程序,通過使用02H號功能調(diào)用,依次在屏幕上顯示26個英文字母的大寫形式。并且在顯示字符之間加入空格

2.3程序代碼和運(yùn)行結(jié)果

2.3代碼如下(示例):

; multi-segment executable file template.  

data segment
    ; add your data here!
    pkey db "press any key...$"
ends

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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
     MOV CX,26  ;控制循環(huán)次數(shù)
     MOV BL,00H  ;讓字母變換的變量 
     
xh:  
     MOV DL,'A'
     ADD DL,BL
     MOV AH,02H
     INT 21H     
     INC BL       ;將BL加1,使其顯示字母發(fā)生改變    
     
     MOV DL,' '   ;使顯示的字母中間有空格
     MOV AH,02H
     INT 21H
     
LOOP xh     

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

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

end start ; set entry point and stop the assembler.

2.3運(yùn)行結(jié)果

emu80861、利用dos調(diào)用實(shí)現(xiàn)簡單的加法: (1)輸出提示信息“please input a”(功能,emu8086,arm,arm開發(fā),單片機(jī)

四、由鍵盤輸入一個字母的小寫形式,將其變換為大寫形式輸出。

2.4題目要求

(1)將程序設(shè)計(jì)為一個循環(huán)結(jié)構(gòu)可以不停的對輸入字符進(jìn)行轉(zhuǎn)換
(2)設(shè)置一個終止字符‘#’當(dāng)輸入時可以停止轉(zhuǎn)換
(3)可以對輸入數(shù)據(jù)的格式進(jìn)行判斷如果不是小寫字母,則重新輸入

2.4程序代碼和運(yùn)行結(jié)果

2.4代碼如下(示例):


DATA	SEGMENT		;數(shù)據(jù)段		
     MESS DB 0DH,0AH,'PLEASE INPUT A LETTER',0DH,0AH,'$'
 
DATA	ENDS

EXTRA	SEGMENT	;	;附加段
 
EXTRA	ENDS
;

STACK	SEGMENT  PARA  STACK  ‘STACK’   ;堆棧段
STAPN	DB     100 DUP (00H)	;定義100字節(jié)空間
TOP	EQU  LENGTH  STAPN
STACK	ENDS

           
CODE	SEGMENT			
MAIN	PROC   FAR			;過程定義語句
				;說明4個段寄存器分別與哪些段有關(guān)
		ASSUME  CS:CODE, DS:DATA,ES:EXTRA,SS:STACK
 
START: 
        MOV AX,DATA
        MOV DS,AX    
        
        MOV AX, EXTRA
        MOV ES,AX
        
        MOV AX,STACK
        MOV SS,AX

  M_START :  MOV DX,OFFSET MESS
             MOV AH,09H
             INT 21H
             
             MOV AH,01H
             INT 21H
             
             CMP AL,'#'
             JE  M_OUT
             
             CMP AL,'a'
             JB  M_START

             CMP AL,'z'
             JA  M_START

             SUB AL,20H
             MOV DL,AL
             MOV AH,02H
             INT 21H

             JMP   M_START
             
 
  M_OUT:   MOV AX,4C00H
           INT 21H      
            
        RET
MAIN	ENDP		;MAIN過程結(jié)束
CODE 	ENDS	          	;代碼段結(jié)束
    END   MAIN	;整個源代碼結(jié)束
          

2.4運(yùn)行結(jié)果
emu80861、利用dos調(diào)用實(shí)現(xiàn)簡單的加法: (1)輸出提示信息“please input a”(功能,emu8086,arm,arm開發(fā),單片機(jī)文章來源地址http://www.zghlxwxcb.cn/news/detail-769898.html

到了這里,關(guān)于微機(jī)實(shí)驗(yàn)第二章:循環(huán)、分支程序和常用的DOS功能調(diào)用(B站)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ArduinoUNO實(shí)戰(zhàn)-第二十二章-紅外遙控實(shí)驗(yàn)

    ArduinoUNO實(shí)戰(zhàn)-第二十二章-紅外遙控實(shí)驗(yàn)

    Arduino基礎(chǔ)入門篇25—紅外遙控 Arduino與紅外遙控握手 在日常生活中我們會接觸到各式各樣的遙控器,電視機(jī)、空調(diào)、機(jī)頂盒等都有專用的遙控器,很多智能手機(jī)也在軟硬件上對紅外遙控做了支持,可以集中遙控絕大部分家用電器。 當(dāng)按下遙控器上某個按鍵,串口輸出該按鍵的

    2024年02月16日
    瀏覽(17)
  • 第二章:AI大模型的基本原理2.2 深度學(xué)習(xí)基礎(chǔ)2.2.3 循環(huán)神經(jīng)網(wǎng)絡(luò)

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)是一種特殊的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它可以處理序列數(shù)據(jù),如自然語言、時間序列預(yù)測等。RNN的核心特點(diǎn)是包含反饋連接,使得網(wǎng)絡(luò)具有內(nèi)存功能,可以在處理序列數(shù)據(jù)時保留以前的信息。這一特性使得RNN成為處理自然語言和時間序列數(shù)據(jù)的

    2024年01月16日
    瀏覽(28)
  • 《計(jì)算機(jī)網(wǎng)絡(luò)-自頂向下》wireShark實(shí)驗(yàn)-第二章:http

    《計(jì)算機(jī)網(wǎng)絡(luò)-自頂向下》wireShark實(shí)驗(yàn)-第二章:http

    我們開始探索HTTP,方法是 下載一個非常簡單的HTML文件 。非常短,并且 不包含嵌入的對象 。執(zhí)行以下操作: 啟動您的瀏覽器。 啟動Wireshark數(shù)據(jù)包嗅探器,如Wireshark實(shí)驗(yàn)-入門所述(還沒開始數(shù)據(jù)包捕獲)。 在display-filter-specification窗口中輸入“http”(只是字母,不含引號標(biāo)

    2024年02月19日
    瀏覽(26)
  • 【云計(jì)算與虛擬化】第二章 實(shí)驗(yàn)一 VMware Workstation的使用

    【云計(jì)算與虛擬化】第二章 實(shí)驗(yàn)一 VMware Workstation的使用

    實(shí)驗(yàn)一?? vmware workstation的使用 安裝Windows Server 2012 R2虛擬機(jī),并激活 (計(jì)算機(jī)命名為:學(xué)號 + 姓名拼音的首字母) 2.在 Windows Server 2012 R2 的虛擬機(jī)中安裝 VMTools 3.關(guān)機(jī)創(chuàng)建快照 (快照命名為:學(xué)號 + 姓名拼音的首字母) 4.通過啟用共享文件夾的形式讓虛擬機(jī)訪問主機(jī)的文件

    2024年02月05日
    瀏覽(13)
  • 【云計(jì)算與虛擬化】第二章 實(shí)驗(yàn)二 Vmware Workstation 15的使用

    【云計(jì)算與虛擬化】第二章 實(shí)驗(yàn)二 Vmware Workstation 15的使用

    實(shí)驗(yàn)二?? Vmware Workstation 15的使用 在上一實(shí)驗(yàn)的基礎(chǔ)上,將兩臺虛擬機(jī)調(diào)節(jié)到在橋接模式下,配置相應(yīng)的網(wǎng)絡(luò)參數(shù),實(shí)現(xiàn)虛擬機(jī)1和2能相互通信,虛擬機(jī)1和2能夠ping通外網(wǎng),虛擬機(jī)1和2能ping通物理機(jī)。 (截取虛擬網(wǎng)絡(luò)編輯器中橋接的信息以及兩臺虛擬機(jī)調(diào)節(jié)到在橋接模式的

    2024年02月06日
    瀏覽(20)
  • 《Jetpack Compose從入門到實(shí)戰(zhàn)》 第二章 了解常用UI組件

    《Jetpack Compose從入門到實(shí)戰(zhàn)》 第二章 了解常用UI組件

    書附代碼 Google的圖標(biāo)庫 ConstraintLayout約束布局需要依賴:implementation “androidx.constraintlayout:constraintlayout-compose: $constraintlayout _version” 《Jetpack Compose從入門到實(shí)戰(zhàn)》第一章 全新的 Android UI 框架 《Jetpack Compose從入門到實(shí)戰(zhàn)》 第二章 了解常用UI組件 《Jetpack Compose從入門到實(shí)戰(zhàn)》

    2024年02月07日
    瀏覽(26)
  • 【QT開發(fā)筆記-基礎(chǔ)篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget

    【QT開發(fā)筆記-基礎(chǔ)篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget

    【QT開發(fā)筆記-基礎(chǔ)篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget(1) QTableWidget 是 Qt 中的表格控件,可以行列的形式來展示數(shù)據(jù) QTableWidget 有很多屬性和方法,完整的可查看幫助文檔。 在窗口上放置一個 QTableWidget 控件后,既可以在設(shè)計(jì)師 UI 界面來編輯屬性和添加數(shù)據(jù),也

    2024年02月12日
    瀏覽(31)
  • 黑馬程序員rocketmq第二章

    maven工程springboot-rocketmq-producer application.properties 測試類 springboot-rocketmq-consumer application.properties zookeeper集群搭建 1.在/usr/soft/zookeeper-cluster下存放zookeeper-3.4.6.tar.gz 2.解壓:tar -zvxf zookeeper-3.4.6.tar.gz 3./usr/soft/zookeeper-cluster/zookeeper-3.4.6/conf 下重命名 zoo_sample.cfg為zoo.cfg mv zoo_sample.cf

    2023年04月26日
    瀏覽(137)
  • 《python語言程序設(shè)計(jì)基礎(chǔ)》(第二版)第二章課后習(xí)題參考答案

    第二章 Python程序?qū)嵗馕?2.1 溫度轉(zhuǎn)換 2.2 匯率兌換 優(yōu)化: 優(yōu)化的主要改動: 將貨幣符號和金額分離出來,使代碼更加清晰易讀。 將條件判斷改為根據(jù)貨幣符號進(jìn)行判斷,避免重復(fù)判斷。 2.3 繪制彩色蟒蛇 2.4 等邊三角形的繪制 代碼一: 代碼二: 2.5 疊加等邊三角形的繪制

    2024年03月19日
    瀏覽(36)
  • 譚浩強(qiáng)【C語言程序設(shè)計(jì)】第二章習(xí)題詳解

    譚浩強(qiáng)【C語言程序設(shè)計(jì)】第二章習(xí)題詳解

    ? 目錄 ?編輯 1,什么是算法?試從日常生活中找3個例子,描述它們的算法。 2,什么叫結(jié)構(gòu)化的算法?為什么要提倡結(jié)構(gòu)化的算法? 3,試述3種基本結(jié)構(gòu)的特點(diǎn),請另外設(shè)計(jì)兩種基本結(jié)構(gòu)(要符合基本結(jié)構(gòu)的特點(diǎn))。 4,用傳統(tǒng)流程圖表示求解以下問題的算法。 (1)有兩個

    2024年02月01日
    瀏覽(41)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包