汇编语言:编写一个程序,显示AL寄存器中的两位十六进制数

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-31
汇编语言:编写一个程序,显示bx寄存器中的两位十六进制数

你是学这个专业的,还是要考试呀,这个问题很基础,无论你是两种中的那种情况,都应该再看一遍书,自己解决。若两种情况都不是,这么基础的问题还来百度找志愿者帮忙,那我是否可以认为你在逗我呢?请重视自己和尊重默默帮助的人,维护和谐的默契,谢谢。

.model small.codestart: mov al,2DH mov ch,2 mov cl,4 mov ah,2 mov bl,alp0: rol bl,cl mov dl,bl and dl,0fh cmp dl,9 jbe p1 add dl,7p1: add dl,30h int 21h dec ch jnz p0 mov ah,4ch int 21hend start

data segment

data ends

stack segment
db 256 dup(?)
stack ends

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

start:
mov ax, data
mov ds, ax
mov ax, stack
mov ss, ax

mov al, 0c5h
call disp_al

mov al, 065h
call disp_al

mov ah, 04ch
int 21h

;disp_al子程序将寄存器AL中的数值以十六进制显示出来
disp_al:
mov dh, al

mov bx, 2 ;bx用于循环,一个字节最多可以显示成两个字符,所以循环次数是2次

mov cl, 4 ;首先显示高4位,在下次循环进再显示低4位
shr al, cl
again:
and al, 0fh
cmp al, 9
ja hex
add al, '0' ;如果小于9,加上字符'0'将数字转换字符
jmp disp
hex:
sub al, 10 ;如果大于9,先减去10,再加上字符'A',就可以将数字转换成相应的'A'~'F'
add al, 'A'
disp:;利用中断显示字符
mov dl, al
mov ah, 02h
int 21h

mov al, dh

dec bx
test bx, bx
jnz again

ret

code ends
end start

寄存器是16位的吗?
mov a,al
and a,0ffh
mov ax,a 做与运算取出低8位
call disp 调用显示子程序

mov a,al
and a,0ff00h 做与运算取出高8位
mov bx,a
swap bx 高低交换位置
call disp 调用显示子程序

AAM
PUSH AX
MOV AH,2
POP BX
MOV DL,BH
ADD DL,30H
INT 21H
MOV AH,2
MOV DL,BL
ADD DL,30H
INT 21H

  • 汇编语言:编写一个程序,显示AL寄存器中的两位十六进制数
    答:;disp_al子程序将寄存器AL中的数值以十六进制显示出来disp_al: mov dh, al mov bx, 2 ;bx用于循环,一个字节最多可以显示成两个字符,所以循环次数是2次 mov cl, 4 ;首先显示高4位,在下次循环进再显示低4位 shr al, clagain: and al, 0fh cmp al, 9 ja hex add al, '0' ;如果小于9,加上字符...
  • 汇编语言 编写一个程序,将AL寄存器中的一位十六进制数转化成ASCII码...
    答:CODE SEGMENT START:MOV AL, 0FH ;在这里可写 00H~0FH,这就是一位16进制数 AND AL, 0FH ;无用位清零,保留该数字 ;下面是变成ASCII码 CMP AL, 0AH JB NEXT ADD AL, 07H NEXT:ADD AL, 30H ;下面是显示输出 MOV DL, AL ;送到DL MOV AH, 2 ;显示单个字符 I...
  • ...进制形式在屏幕上显示。(要求用简化段汇编语言实现)
    答:.model small.codestart: mov al,2DH mov ch,2 mov cl,4 mov ah,2 mov bl,alp0: rol bl,cl mov dl,bl and dl,0fh cmp dl,9 jbe p1 add dl,7p1: add dl,30h int 21h dec ch jnz p0 mov ah,4ch int 21hend start ...
  • 设计一个汇编语言程序,用AL寄存器实现带进位的加减法运算。假如1000H地 ...
    答:sbb al, 0 mov [3001h], al
  • ...码的程序 说明:从键盘上按键,每按一个键,显示一个字符,并显示其ASCII...
    答:INT 21H ;显示.MOV AH, 1 ;1号功能调用,键入、显示.INT 21H ;CMP AL, 13 JZ EXIT ;回车就结束.PUSH AX MOV AH, 2 MOV DL, 32 ;空格.INT 21H INT 21H POP AX CALL CHANUM ;符号转换成数字.JMP LOP ;--- EXIT:MOV AH, 4CH INT 21H ;-...
  • 汇编语言中 OUT DX,AL 指令操作过程是什么? OUT操作码实现的功能是什么...
    答:in和Out都是IO操作指令 , 例如out指令:OUT PortNo/DX, AL/AX 功能为把AL/AX的数据送到IO地址,IO地址如果大于FFH,则地址需要放入DX,要输出字节,默认使用AL寄存器,要输出字,默认使用AX寄存器。例如:MOV AL,10H //(将字节10H 从 I/O端口70H 输出)OUT 70H,ALMOV AX,0010H //(将 字...
  • 用汇编语言编译一个程序\从键盘输入一个字符串将其每个字符的ASCII码...
    答:mov ah, 1 ;键盘输入 int 21h call asc2bin mov bl, al mov bh, 0 dec bx shl bx, 1 mov dx, tab[bx]mov ah, 9 int 21h mov ax, 4c00h Int 21h main endp ;将ASCII转换为二进制数 ;入口:AL存放ASCII ;出口:转换后数值在AL asc2bin ...
  • 汇编语言中LEA,AX,AL,BX等等什么意思
    答:这几个汇编语言LEA(由编译器计算出data变量的地址,然后替换掉指令中出现data变量标识 ) AX,AL(CPU的16位数据寄存器AX,运算时将操作数从内存取出放入寄存器进行计算AX保存16位2进制数 AX也可分为两个8位寄存器 AH,AL 分别为高8位和低8位)即把AL的偏移地址送入AX寄存器,BX,BL,DI都是寄存器,...
  • 汇编语言 编写一个程序,从一个字符串查找ASCII码最大的字符,并将其显示...
    答:mov al,byte ptr[si]line2: loop again2 mov byte ptr[char],al lea dx,lfcr mov ah,9 int 21h lea dx,char mov ah,9 int 21h mov ah,4ch int 21hcode ends end start
  • 高分求助:用汇编语言编写程序,输出ascII表!
    答:255 MOV DL,0 MOV SI,OFFSET TAB1 MOV DI,OFFSET MSG AG: PUSH CX PUSH DX MOV AX,0 MOV AL,DL MOV BL,10H DIV BL MOV BX,0 MOV BL,AH MOV DH,[SI+BX]MOV [DI+1],DH MOV BL,AL MOV DH,[SI+BX]MOV [DI],DH PUSH DX MOV DX,OFFSET MSG MOV AH,9 INT 21H POP DX ...