汇编语言实验三 顺序结构程序设计

编写一个32为加法程序,将已经定义好的双字变量X、Y相加之和存放到变量Z中(不考虑溢出)。

.model small,c
.stack 200
.data
x dd 22223333H
y dd 44445555H
z dd ?
;Z最终值为66668888H
.code 
.startup
mov ax,word ptr x
;ptr用来指示操作数的大小和类型,word ptr表示汇编器在处理x的时候要以字(16位)为单位来处理
add ax,word ptr y
mov word ptr z,ax

mov ax,word ptr x+2
;word ptr x+2,就是以字单位向后移动一个单位,也就是x的第二个16位的数据(3333H)
add ax,word ptr y+2
mov word ptr z+2,ax
.exit
End

编写程序,将已定义的双字变量X循环左移一位

.model small,c
.stack 200
.data
x dd 6A6A6A6AH
;Z最终值为66668888H
.code 
.startup
;先对低位进行循环左移
shl word  ptr x,1
rcl word ptr x+2,1
adc word ptr x,0
mov ax,word ptr x
mov bx,word ptr x+2
;最终结果x等于D4D4D4D4
.exit
End

编写程序,从键盘输入两个十进制数字,转换成十六进制数存放到字节变量X(不考虑输入错误)。

.DATA
x db ?
.CODE
.STARTUP
mov ah,1
int 21h
sub al,'0'
mov ah,0
mov bl,10
mul bl
mov bl,al

mov ah,1
int 21h
sub al,'0'
add bl,al

mov x,bl

.EXIT
END

编写程序,将已定义压缩BCD码X,转换成两位十进制字符输出到屏幕。

.model small,c
.stack 200
.data
x db 56h
.code
.startup
mov cl,4h
mov dl,x
shr dl,cl;将dl逻辑右移4位(除以16),获取高四位的十进制数
add dl,'0';转换成为字符才能输出,不然乱码
mov ah,2h
int 21h
mov dl,x
and dl,0fh ;将dl进行与操作,保留低四位的十进制数,0fh就是15,我们只需要0~9的十进制数,所以对15取余
add dl,'0'
mov ah,2h
int 21h
;最后分别输出了5和6
.exit
end(5)编写程序,输入一个十进制数(不考虑错误输入),要求用查表指令计算其平方并输出,等待任意按键后退出。
.data
Tab db 0,1,4,9,16,25,36,49,64,81
n db 5
m db ?
.code
.startup
	mov al,n
	mov bx,offset tab
xlat
mov m,al
.exit
end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咩咩大主教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值