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

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

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 9中任一自然數X,求其立方值

x86彙編 求0 9立方,顯示結果 masm5.0編譯後,執行無誤 code segment assume cs code,ds codeorg 100h start push cs pop ds again lea dx,tips1 mov ah,9 int 21h 顯示提示 in mov ah,...

組合語言程式設計,接收從鍵盤輸入的字元,以CTR C結束,並將其中的小寫字母轉變為大寫字母,然後在螢幕上顯示

問題非常多 1.首先題目就有問題,不可能 接收從鍵盤輸入的字元,以ctr c 結束 對於命令提示符來說,按下ctrl c,就會強行退出這個程式,所以不可能以ctrl c結束的。應該是按回車結束輸入。2.data裡有中文標點符號。3.輸入字元後,按下回車,在c語言裡執行的時候會自動換行,但是在彙編裡不...

用8086組合語言編寫程式,接受從鍵盤上輸入的兩位十進位制數字,這個數經過BCD碼處理,以十六進位制顯示出

做而論道 disp str macro x 巨集定義.mov dx,offset x mov ah,9 int 21h endm data segment 資料段.msg1 db 13,10,please input msg3 db 13,10,the hex is x dw 存放新輸入資料.dat...