《IBM-PC汇编语言程序设计 第二版》部分习题答案(第5章)

现在部分学校用的还是这本书,清华大学出版社,沈美明、温冬婵编著。
   这当然不是标准答案,自己做的,呵呵,希望对大家有用处。

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<

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值