现在部分学校用的还是这本书,清华大学出版社,沈美明、温冬婵编著。
这当然不是标准答案,自己做的,呵呵,希望对大家有用处。
5.1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来
.model small
.stack 100H
.code
main proc far
Start:
push dx
mov ax,0
push ax
mov ah,01H
int 21H
cmp al,61H
jl lop1
cmp al,7BH
jge lop1
sub al,20H
mov dl,al
lop1:mov ah,2
int 21H
ret
End start
5.2 编写一个程序,从键盘接受一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符.
.model small
.386
.code
MAIN PROC FAR
start:
push ds
sub ax,ax
push ax
input:
mov ah,7H
int 21H
cmpe:
cmp al,20H
JE exit
cmp al,61H
JL input
cmp al,7AH
JG input
print:
sub al,01H
mov dl,al
mov ah,02H
int 21H
add al,01H
mov dl,al
mov ah,02H
int 21H
add al,01H
mov dl,al
mov ah,02H
int 21H
;输出换行回车
mov dl,0AH
mov ah,02H
int 21H
jmp input
exit :
ret
MAIN ENDP
END start
5.3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL、DL中。
.model small
.data
x DB 4 dup(?)
.stack 100H
.code
MAIN PROC FAR
start:
push ds
and ax,00H
push ax
mov ax,1234H
mov cx,04H
mov si,00H
lop:
push cx
mov cl,04H
rol ax,cl
push ax
and al,0FH
mov BYTE PTR x[si],al
pop ax
pop cx
add si,2
Loop lop
mov al,[X]
mov bl,[X+2]
mov cl,[X+4]
mov dl,[X+6]
print:
mov ah,02H
int 21H
mov dl,al
mov ah,02H
int 21H
mov dl,bl
mov ah,02H
int 21H
mov dl,cl
mov ah,02H
int 21H
exit:
ret
MAIN ENDP<