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

時間 2021-08-14 23:00:26

1樓:鷹的飛翔

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

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

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

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

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

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

2樓:匿名使用者

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

3樓:匿名使用者

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進製制數後回車即可.

4樓:

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

5樓:吊兒郎當_傑

樓主您好,可以用c給您做麼

6樓:人才不

輸入之後回車!

assume cs:code,ds:data,ss:stackdata segment

temp db 4 dup(0)

msg1 db 10,13,'please input a hex number ',10,13 ,'$'

msg2 db 10,13,'the binary num is ',10,13,'$'

err db 10,13,"the num you input isn't hex",10,13,'$'

h16 dw 16

data ends

stack segment

db 128 dup (0)

tos db '$'

stack ends

code segment

change proc

mov cx,0

l:shr ax,1

jc p1

mov bx,30h

push bx

jmp cont

p1:mov bx,31h

push bx

cont:

inc cx

cmp ax,0

jne l

o:pop dx

mov ah,2

int 21h

loop o

r:ret

change endp

error proc

mov dx,offset err

mov ah,9

int 21h

reterror endp

p09 proc

push ax

mov ax,bx

pop bx

and bx,000fh

mul h16

add ax,bx

mov bx,ax

retp09 endp

paf2 proc

push ax

mov ax,bx

pop bx

and bx,00ffh

mul h16

sub bl,37h

mov bh,0

add ax,bx

mov bx,ax

retpaf2 endp

paf1 proc

push ax

mov ax,bx

pop bx

and bx,00ffh

mul h16

sub bl,87

mov bh,0

add ax,bx

mov bx,ax

retpaf1 endp

start:

mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

mov sp,offset tos

mov dx,offset msg1

mov ah,9

int 21h

mov bx,0

l1:mov ah,1

int 21h

cmp al,13

je next

cmp al,'0'

jb erro

cmp al,'9'

jng p

cmp al,'a'

jb erro

cmp al,'f'

jng paf

cmp al,'a'

jb erro

cmp al,'f'

jng pa

erro:

call error

jmp exit

pa :

call paf1

jmp l1

paf:

call paf2

jmp l1

p :

call p09

jmp l1

next:

mov dx,offset msg2

mov ah,9

int 21h

mov ax,bx

call change

exit:

mov ax,4c00h

int 21h

code ends

end start

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

中原小壞蛋 按回車結束程式 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 ...

用組合語言編寫程式,用組合語言編寫乙個程式

print macro para 定義乙個巨集,這樣輸出字串的時候,可以省些事兒 lea dx,para mov ah,9 int 21h endm data segment msg1 db 請用拼音輸入姓名學號 格式為 xinming,xuhao buffer db 50,52 dup 0 為什麼...

組合語言程式設計問題編寫組合語言程式。能每隔10秒顯示數字分別為

org 0000h 數碼管共陰 ajmp main org 000bh t0ms equ not 50000 100 ms 晶振 6.000 mhz pjsbz equ 20h pjsbzy equ 21h pst0 mov tl0,low t0ms t0 中斷 mov th0,high t0ms ...