如何編寫彙編程式,要求“從鍵盤接收四位的16進位制數

時間 2021-10-14 20:16:11

1樓:鷹的飛翔

試編寫一段程式,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。

編寫程式,從鍵盤接收一個小寫字母,然後找出它的前導字元和後續字元,再按順序顯示這三個字元。

編寫程式,從鍵盤接收一個小寫字母,然後找出它的前導字元和後續字元,再按順序顯示這三個字元。

從鍵盤上輸入一串字元,將其中的小寫英文字母變換為大寫英文字母,其他字元保持不變。然後將變換後的字串顯示出來。

試編寫一段程式,要求比較兩個字串string1和string2所含字元是否相等,如相等示“match”, 若不相同則顯示“no match”。

試編寫一段程式,要求在長度為100h位元組的陣列中,找出大於61h的無符號數的個數並存入位元組單元up中,找出小於2fh的無符號數的個數並存入位元組單元down中。

2樓:匿名使用者

code segment

assume cs:code

start: mov bx,0

mov ch,4

mov cl,4

s0: mov ah,1 ;鍵盤輸入4個16進位制數

int 21h

cmp al,39h ;判斷是0~9還是a~h,若是數字減30h,否則還要減07h

jbe next

sub al,07h

next: sub al,30h

shl bx,cl

add bl,al ;轉換後的資料存入bx,每存一次左移4位

dec ch

jnz s0 ;輸入完則控制顯示

mov cx,16

s1: mov dl,0

rol bx,1 ;迴圈左移1位,最高位移入cf

adc dl,30h ;加30h後可得該位的ascii碼.

mov ah,02h

int 21h

loop s1

mov ax,4c00h

int 21h

code ends

end start

說明:編譯連線後,執行後直接輸入4個16進位制數後回車即可.

3樓:lynn菇涼

程式段如下:

begin: mov bx, 0 ;用於存放四位的16進位制數mov ch, 4

mov cl, 4

input: shl bx, cl ;將前面輸入的數左移4位mov ah, 1 ;從鍵盤取數

int 21h

cmp al, 30h ;<0嗎?

jb input ;不是‘0~f’的數重新輸入cmp al, 39h ;是‘0~9’嗎?

ja af ;不是,轉‘a~f’的處理and al, 0fh ;轉換為:0000b~1001bjmp binary

af: and al, 1101 1111b ;轉換為大寫字母cmp al, 41h ;又f嗎?

ja input ;不是‘a~f’的數重新輸入and al, 0fh ;轉換為:1010b~1111badd al, 9

binary: or bl, al ;將鍵盤輸入的數進行組合del ch

jnz input

dispn: mov cx, 16 ;將16位二進位制數一位位地轉換成ascii碼顯示

disp: mov dl, 0

rol bx, 1

rcl dl, 1

or dl, 30h

mov ah, 2 ;進行顯示

int 21h

loop disp

stop: ret

如何用組合語言編寫:從鍵盤上輸入一個十六進位制數,將其轉換成一個十進位制數顯示。

4樓:匿名使用者

data segment

data1 db ?

data2 db 2 dup(?)

data20 db 2 dup(?)

data3 db 'input error, please enter again!','$'

data ends

stack segment

db 5 dup(?)

stack ends

code segment

assume cs:code, ds:data,ss:stackstart:mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

mov bx,0

input:mov ah,01h

int 21h

cmp al,51h;判斷輸入的字元是否為**e exit

;如果是q就退出

cmp al,71h;判斷輸入的字元是否為**e exit

;如果是q就退出

push ax

;把從鍵盤輸入的字元的ascii存到堆疊段sub al,30h ;判斷是否為數字

cmp al,00h

jl indi  ;如果不是就提示錯誤

cmp al,09h ;

mov bl,al ;

jle output2;如果是數字就輸出

pop ax  ;把al的值取出來

push ax ;

mov bl,al

sub al,41h;判斷是否為大寫字母a到fcmp al,00h

jl indi

;如果不是就提示錯誤

cmp al,06h

jl change

pop ax

push ax

mov bl,al

sub al,61h;判斷是否為小寫字母a到fcmp al,00h

jl indi ;如果不是就提示錯誤

cmp al,06h

jl change

pop ax

jmp indi

change:mov si,0

mov di,0

mov cl,4

mov al,bl

and al,11011111b;統一換為大寫字母再轉換,如果是大寫字母就不變

sub al,31h

mov bl,al

and al,0fh ;與運算,取低位

mov [data2+si],al ;把個位數存到data2中mov al,bl

sar al,cl ;算術右移,取高位

mov[data20+di],al;把十位數存到data20中output1: mov dl,48h;輸出十六進位制符號hmov ah,02h

int 21h

mov dl,3dh ;輸出等號‘=’

mov ah,02h

int 21h

mov dl,[data20+di];輸出十位數add dl,30h

mov ah,02h

int 21h

mov dl,[data2+si];輸出個位數add dl,30h

mov ah,02h

int 21h

mov dl,20h

mov ah,02h

int 21h

jmp input;跳到輸入數字

output2:  mov dl,48h ;輸出數字mov ah,02h

int 21h

mov dl,3dh

mov ah,02h

int 21h

mov dl,bl

add dl,30h

mov ah,02h

int 21h

mov dl,20h

mov ah,02h

int 21h

jmp input

indi:mov dl,20h ;提示子程式mov ah,02h

int 21h

mov dx,offset data3 ;顯示提示資訊mov ah,09h

int 21h

jmp input

exit:mov ah,4ch

int 21h

code ends

end start

試編寫一個組合語言程式,要求從鍵盤接收一個四位的16進位制數,並在終端上顯示與它等值的二進位制數。

5樓:鷹的飛翔

試編寫一段程式,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。

編寫程式,從鍵盤接收一個小寫字母,然後找出它的前導字元和後續字元,再按順序顯示這三個字元。

編寫程式,從鍵盤接收一個小寫字母,然後找出它的前導字元和後續字元,再按順序顯示這三個字元。

從鍵盤上輸入一串字元,將其中的小寫英文字母變換為大寫英文字母,其他字元保持不變。然後將變換後的字串顯示出來。

試編寫一段程式,要求比較兩個字串string1和string2所含字元是否相等,如相等示“match”, 若不相同則顯示“no match”。

試編寫一段程式,要求在長度為100h位元組的陣列中,找出大於61h的無符號數的個數並存入位元組單元up中,找出小於2fh的無符號數的個數並存入位元組單元down中。

6樓:匿名使用者

用c寫、寫完後,在vc裡面進入除錯模式、然後檢視反彙編**、就可以看到對應的彙編**了。

7樓:匿名使用者

code segment

assume cs:code

start: mov bx,0

mov ch,4

mov cl,4

s0: mov ah,1 ;鍵盤輸入4個16進位制數

int 21h

cmp al,39h ;判斷是0~9還是a~h,若是數字減30h,否則還要減07h

jbe next

sub al,07h

next: sub al,30h

shl bx,cl

add bl,al ;轉換後的資料存入bx,每存一次左移4位

dec ch

jnz s0 ;輸入完則控制顯示

mov cx,16

s1: mov dl,0

rol bx,1 ;迴圈左移1位,最高位移入cf

adc dl,30h ;加30h後可得該位的ascii碼.

mov ah,02h

int 21h

loop s1

mov ax,4c00h

int 21h

code ends

end start

說明:編譯連線後,執行後直接輸入4個16進位制數後回車即可.

8樓:

begin: mov bx, 0 ;用於存放四位的16進位制數mov ch, 4

mov cl, 4

input: shl bx, cl ;將前面輸入的數左移4位mov ah, 1 ;從鍵盤取數

int 21h

cmp al, 30h ;<0嗎?

jb input ;不是‘0~f’的數重新輸入cmp al, 39h ;是‘0~9’嗎?

ja af ;不是,轉‘a~f’的處理and al, 0fh ;轉換為:0000b~1001bjmp binary

af: and al, 1101 1111b ;轉換為大寫字母cmp al, 41h ;又f嗎?

ja input ;不是‘a~f’的數重新輸入and al, 0fh ;轉換為:1010b~1111badd al, 9

binary: or bl, al ;將鍵盤輸入的數進行組合del ch

jnz input

dispn: mov cx, 16 ;將16位二進位制數一位位地轉換成ascii碼顯示

disp: mov dl, 0

rol bx, 1

rcl dl, 1

or dl, 30h

mov ah, 2 ;進行顯示

int 21h

loop disp

stop: ret

求匯程式設計序,編寫組合語言,匯程式設計序基礎語法

什麼都沒有,怎麼寫?匯程式設計序基礎語法 注意 立即數書寫必須以數字開頭,若十六進製制數第一位為字母,可在前面新增0。變數一旦被定義,就具有以下三個屬性 表示該變數存放在哪個邏輯段中,變數的段基值可以用seg運算子獲取。表示變數所在位置與段起始點之間的位元組數,變數的偏移量可以用offset運算子獲...

試編寫組合語言程式,要求從鍵盤接收四位的16進製制數,並在終端上顯示與它等值的二進位制數

鷹的飛翔 試編寫一段程式,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。編寫程式,從鍵盤接收乙個小寫字母,然後找出它的前導字元和後續字元,再按順序顯示這三個字元。編寫程式,從鍵盤接收乙個小寫字母,然後找出它的前導字元和後續字元,再按順序顯示這三個字元。從鍵盤上輸入一串字元,將其中的小寫英文本母變換為大...

求答案 試編寫組合語言程式,要求對鍵盤輸入的小寫字母用大寫字母顯示出來

中原小壞蛋 按回車結束程式 codes segment assume cs codes start a mov ah,01h int 21h cmp al,0dh jz exit sub al,32 mov dl,al mov ah,02 int 21h jmp a exit mov ah,4ch ...