1. 给出一个数,例如 37H或68H,请将此数显示在屏幕上。
2. 给定三个无符号数(字或字节),求出最大值,并将最大值存入MAX单元,并在屏幕上显示。
3. 上述三个数改为带符号的数
第一题
data segment
pkey db "press any key...$"
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
; add your code here
mov al,37h
push ax
mov ah,al
shr ah,4
add ah,30h
mov dl,ah
mov ah,2
int 21h
pop ax
and ah,00001111b
add ah,30h
mov dl,ah
mov ah,2
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start ; set entry point and stop the assembler.
第二题
assume cs:code,ds:data
data segment
buffer dw 13h,19h,17h
max dw ?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,offset max - offset buffer
shr cx,1 ;对字型数据,数据个数是单元数的一半
lea bx,buffer
mov ax,[bx] ;先设第一个为最大
inc bx
inc bx
dec cx
again:
cmp ax,[bx]
jnb next
mov ax,[bx]
next:
inc bx
inc bx
loop again
mov max,ax
;显示最大值
mov al,ah
shr ah,4
add ah,30h
mov dl,ah
mov ah,2
int 21h
mov ah,al
and ah,00001111b
add ah,30h
mov dl,ah
mov ah,2
int 21h
mov ax,max
mov ah,al
shr al,4
add al,30h
mov dl,al
mov ah,2
int 21h
mov ax,max
and al,00001111b
add al,30h
mov dl,al
mov ah,2
int 21h
mov ax, 4c00h
int 21h
code ends
end start
第三题
稍加修改即可,故略
汇编语言 位操作指令、控制转移指令、系统调用显示功能练习
最新推荐文章于 2024-04-05 19:07:16 发布