匯程式設計序求解釋,求解釋匯程式設計序

時間 2022-03-26 02:54:38

1樓:匿名使用者

1、c口高四位和低四位的輸入輸出定義不是根據同組的a口或者b口決定的。因為這裡沒有用到c口,所以你隨便設定為0

2、mov dl,0ffh

mov ah,06h

int 21h

是dos中斷服務功能號為06h---直接控制台i/o服務。當dl=0ffh時候,是從標準輸入(鍵盤)獲得使用者按鍵(不等待),當dl=字元ascii碼時候向標準輸出(螢幕)輸出

求解釋乙個匯程式設計序!!

2樓:匿名使用者

彙編**理解比編寫還困難,如果他忘記注釋或者故意忘記

一小段匯程式設計序求解釋

3樓:做而論道

1 一開始執行到ajmp main以後不就直接跳轉到下面的main了嘛 org 000bh ajmp itop org 0100h這些指令不執行了麼?

--000bh 處的專指令,由t0的硬體中屬斷來執行。

2 mov sp,#60h 這裡的60h是隨意設定的麼 有沒有什麼要求?

--只要是在內部ram之中,不要離開頂部太近,留一定的距離。

3 mov tmod,#01h 設定為方式1,這個的話 tmod裡裝入的是 00001111,這個最後兩位是11不是方式3麼?

--#01h,是 0000 0001。

--不是 0000 1111,這是 0fh。

求匯程式設計序解釋

組合語言程式求逐行解釋!!!!!!!!!!!

4樓:白雲深處是我家

data segment

x db ?             ;4個1位元組變數,x,y,z,sum

y db ?

z db ?

sum db ?

data ends

stack segment

db 100h dup(?)   ;定義堆疊長度

stack ends

code segment

assume cs:code, ds:data, ss:stack

start:

mov ax,data

mov ds,ax

mov ah,1            ; 21h中斷的1號子功能,

int 21h                ;讀取乙個字元到al暫存器中

and ax,000fh    ; 把ascii表示的數字,轉換成實際的值,如 字元'3', ascii值為33h, and 0fh之後,變成03h,即實際值3

mov x, al             ;把讀入的數儲存到x變數中

next1:

mov ah,1           ; 同前,讀取乙個字元

int 21h               ;

cmp al, '+'          ;判斷是不是+號,不是的話,

jnz next1            ;則讀取下乙個字元,直到讀取'+'為止

and ax,000fh  ;同上面解釋,ascii變成對應的數值

mov y, al            ;儲存到y變數中

next2:

mov ah,1           ;同next1解釋

int 21h

cmp al,'+'

jnz next2

and ax,000fh

mov z, al            ;儲存到z變數中

mov al,x             ;計算x+y+z

add al, y

add al, z

mov sum,al       ;計算結果儲存到sum變數中

push ax              ;ax進棧,為後續處理做準備,注意,al中是計算結果 ah=0(因為前面and ax, 000fh,將ah置0了)

next4:

mov ah,1            ;同前,讀取字元

int 21h

cmp al,'='           ;直到讀取到=為止

jnz next4

pop ax                ; ax出棧,al是要輸出的字元

add al,30h         ; 數值轉換為ascii碼值表示的字元數字

mov dl,al            ; 要輸出的字元放在dl中,(21h中斷呼叫要求的)

mov ah,2   ;2號子功能,輸出dl中的字元到螢幕上

int 21h                ;呼叫21h中斷

mov ah,4ch       ;退出到

int 21h                ;作業系統呼叫的中斷

code ends

end start

最終計算的是形如:323+1124+214343=這樣的算式,

計算的是各加數(被加數)的第1個數字,即:3+1+2=6       (上式)

計算結果放在sum中,最終輸出到螢幕上。另外,本程式,如果計算結果》=10,則輸出不正確。

求解釋乙個匯程式設計序

5樓:流星花菜

code segment

assume cs:code

start: mov al,3eh ;將十六進製制3e送到al中

mov bl,al ;再送到bl中,bl中也是3e,主要是後面要用,先儲存一下

mov dl,al ;再送到dl中,dl中也是3e

mov cl,4 ;設定cl為4,為下面的shr做準備,表示右移4位

shr dl,cl ;shr(shift right)右移,cl中存有右移的次數,4次

cmp dl,9 ;右移之後和9比較,cmp(compare)

jbe next1 ;jbe(jump below and equal)小於等於9就跳到next1處

add dl,7 ;如果dl中的數大於九,就將dl加7

next1: add dl,30h ;將dl加30h轉換成字元的ascii碼,0的ascii碼是30h,9是39h

mov ah,2 ;呼叫dos的2號中斷,顯示dl中的字元

int 21h ;顯示高位ascii碼

mov dl,bl ;將bl中的數再重新給dl,這裡就體現了上面要複製給bl的意義

and dl,0fh ;and(邏輯與),取dl的低四位,上面shr取得是高四位

cmp dl,9 ;下面就和上面一樣了,解釋也都一樣

jbe next2

add dl,7

next2: add dl,30h

mov ah,2

int 21h ;顯示低位ascii碼 ;到這裡就全部顯示出來了

mov ah,4ch ;從這裡開始就是一般固定的結束格式了,呼叫dos的4號中斷返回

int 21h

code ends ;返回dos

end star

求微控制器匯程式設計序

at89s52微控制器當按鈕按下後,燈1,燈2亮 燈1定時3秒後燈滅,燈2定時5秒後滅 匯程式設計序如下 org 0000h ljmp start org 000bh ljmp t0 int org 0030h start mov tmod,01h mov th0,0bh mov tl0,0dch ...

c語言程式設計求解釋,C語言程式設計求解釋

標頭檔案主函式,程式的入口 主函式開始的大括號,裝著函式的內容 定義3格int型的變數,m和is for迴圈1,條件是m初始設為200,當m小於500的時候,每一次執行到這裡都要把m的值 1,直到m 500 把is賦值1 for迴圈2,巢狀在for迴圈1中,條件是i初始設為2,當i小於m的時候,每一...

匯程式設計序 課程設計,組合語言課程設計

進入 debug acs 0150 0150 db 0123456789abcdefctrl z rcx把cx改成你要寫入的字串的位元組數。0011 17個位元組,16進製制 n c text w cs 0150 提示成功寫入0011個位元組 16進製制 可以去檢視text檔案了,是你輸的字串。l ...

編譯程式,匯程式設計序屬於什麼軟體,編譯程式和解釋程式,匯程式設計序有什麼區別

你的意思是 軟體分類中的 系統軟體 麼 想對應的是應用軟體。語言不是程式,程式不是軟體,請問匯程式設計序,解釋程式,編譯程式分別指?編譯程式和解釋程式,匯程式設計序有什麼區別 編譯就是把高階語言變成計算機可以識別的2進製語言,是對整個寫好的程式進行翻版譯。最終形權 成目標檔案 解釋程式,是一句一句翻...

求簡單的匯程式設計序,急需啊,求乙個簡單的匯程式設計序,急需啊!!!

這個程式要求是把十進位制的數轉換成二進位制和十六進製制的 要求1 讓使用者輸入一讓我來答!嗯嗯!datas segment inf1 db 黑鷹論壇有你要找的答案 多少時間?就120分開發這個程式太便宜了。求乙個簡單的匯程式設計序 20 1 從鍵盤輸入乙個字元ah 01h mov ah,1 鍵盤輸入...