CALL和RET指令实验
实验10
1.在屏幕8行3列,用绿色显示data段中的字符串
assume cs:code
data segment
db'Welcome to masm!',
data ends code segment
start:
mov dh, ;行
mov dl, ;列
mov cl, ;颜色
mov ax,data
mov ds,ax
mov si, ;字符串首地址
call show_str
mov ax,4c00h
int 21h show_str:
push ax ;用到的寄存器入栈
push bx
push cx
push dx
push es
push di mov ax,0B800h ;定义显示缓冲区的段地址
mov es,ax ;N为行,M为列
;计算写入首地址的偏移地址 公式:1) 0A0H*(N)+M*2
mov al,dh
mov ah, mov bl,0A0h ;每行偏移A0H
mul bl
mov bl,dl
mov bh,
add ax,bx
add ax,bx
mov di,ax ;ax为首地址的偏移地址
mov dl,cl ;dl存颜色
mov ch, nx:
mov cl,ds:[si] ;判断字符是否为00
jcxz over
mov bl,cl
mov bh,dl
mov es:[di],bx ;赋值
add si,
add di,
jmp short nx over:
pop di
pop es
pop dx
pop cx
pop bx
pop ax
ret code ends
end start
2.解决除法溢出
参数:ax=被除数的低16位,dx=被除数的高16位,cx=除数
返回值:dx=结果的高16位,ad=结果的低16位,cx=余数
assume cs:code
code segment
start:
mov ax,4240h
mov dx,000fh
mov cx,0Ah
call divdw
mov ax,4c00h
int 21h
divdw:
push ax
mov ax,dx
mov dx,
div cx
mov bx,ax
pop ax
div cx
mov cx,dx
mov dx,bx
ret
code ends
end start
3.数值显示
将data段中的数据以十进制形式显示出来
assume cs:code
data segment
dw ,,,,,
dw ,,,,,,,
data ends code segment
start:
mov ax,data
mov ds,ax
mov ax,20h
mov ax,
mov ax,0B800h
mov es,ax
mov si, ;si为数据段的偏移
mov di, ;di为显示缓冲区的偏移
mov cx,
call dioffset ;计算di值 s:push cx
mov ax,[si] ;取数据
mov dx,[]
mov bx, ;bx为数字的位数
mov bp,0ch
call dtoc
mov cx,bx
s5:call display
loop s5
add si,
pop cx
loop s
mov ax,4c00h
int 21h ;把数字转为字符串
dtoc:
mov cx, ;除数10
call divdw
jcxz s6
add cx,30h
mov ds:[bp],cx ;数字入栈
add bp,
inc bx ;数字位数加1
jmp short dtoc
s6:ret ;把字符存入显示缓冲区中
display:
push dx
mov dx,ds:[bp-]
sub bp,
mov dh,
mov es:[di],dx ;赋值
add di,
pop dx
ret ;求显示缓冲区偏移地址
dioffset:
push bx
push dx
mov dh, ;行
mov dl, ;列
mov al,dh
mov ah,
mov bl,0A0h ;每行偏移A0H
mul bl
mov bl,dl
mov bh,
add ax,bx
add ax,bx
mov di,ax ;ax为首地址的偏移地址
pop dx
pop bx
ret
;防溢出除法
divdw:
push bx
push ax
mov ax,dx
mov dx,
div cx
mov bx,ax
pop ax
div cx
mov cx,dx
mov dx,bx
pop bx
ret code ends
end start
CALL和RET指令实验的更多相关文章
- 王爽汇编第十章,call和ret指令
目录 王爽汇编第十章,call和ret指令 call和ret指令概述: ret和retf ret指令 retf指令 call 和 ret 的配合使用 call指令详解 call原理 call指令所有写 ...
- 汇编语言---call和ret指令
汇编语言--call和ret指令 call和ret指令 call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP. 它们经常被共同用来实现子程序的设计. ret和retf ret指令用栈 ...
- 汇编学习笔记(7)call和ret指令
ret和retf CPU执行ret指令时进行以下两步操作: (IP)=((ss)*16+(sp)) (sp)=(sp)+2 这相当于pop IP CPU执行retf指令时进行以下四步操作: (IP)= ...
- [汇编学习笔记][第十章 CALL和RET指令]
第十章 CALL和RET指令 call和ret指令都是转移指令,它们都修改CS和IP.经常被共同用于实现子程序的设计.这一章,我们讲解call和ret指令的原理 10.1 ret和retf ret指令 ...
- call 和 ret 指令
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 汇编-10.0-CALL和RET指令
call和ret指令都是转移指令,他们都是修改IP,或同时修改CS和IP.它们常被共同用来实现子程序设计. 1.ret和retf ret指令用栈中的数据,修改IP的内容,从而实现近转移: retf指令 ...
- 第十章 Call 和 Ret 指令
引言 想想程序之间的加载返回过程. call 和 ret 指令都是转移指令,它们都修改 IP,或同时修改 CS 和 IP. call 和 ret 经常被共同用来实现自程序的设计. 这一章,我们讲解 c ...
- 汇编语言笔记 CALL和RET指令
转载地址:http://www.cnblogs.com/dennisOne ☞模块化程序设计 模块化程序设计 汇编语言通过call和ret指令实现了模块化程序设计.可以实现多个相互联系.功能独立的子程 ...
- 自己总结:汇编CALL和RET指令
ret指令,相当于 pop IP:修改IP的内容,从而实现近转移 retf指令,相当于 pop IP pop CS:修改CS和IP的内容,从而实现远转移 -------------- CPU执行cal ...
随机推荐
- ARTS-S C语言多线程传参数
#include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h& ...
- ASP.NET Core 选项模式源码学习Options IOptionsMonitor(三)
前言 IOptionsMonitor 是一种单一示例服务,可随时检索当前选项值,这在单一实例依赖项中尤其有用.IOptionsMonitor用于检索选项并管理TOption实例的选项通知, IOpti ...
- 基于CC1606 FPGA评估板移植iCamera程序小结
iCamera作为柴草电子经典的摄像头开发工具,其强大的摄像头调试功能,深受广大网友喜爱,支持市面上各种摄像头. 目前现有的应用板卡支持:CC1601(CP601A). CC1602(CP601B) ...
- Xshell连接阿里云服务器
1.遇到的问题 直接用阿里云的终端,还需要登录浏览器很是麻烦,所以用Xshell,ssh远程登录这样就轻松方便了很多. 2.打开 打开安装好的Xshell,点击新建 出现了这个界面,首先注意主 ...
- 【CSS】333- 使用CSS自定义属性做一个前端加载骨架
点击上方"前端自习课"关注,学习起来~ 我们在打开APP或者网站的时候,经常可以看到这样的效果,在内容加载完成之前,会有一个骨架动画的出现,这种加载方式比传统的进度条方式要友好的多 ...
- 【Redis】270- 你需要知道的那些 redis 数据结构
本文出自「掘金社区」,欢迎戳「阅读原文」链接和作者进行技术交流 ?? 作者简介 世宇,一个喜欢吉他.MDD 摄影.自走棋的工程师,属于饿了么上海物流研发部.目前负责的是网格商圈.代理商基础产线,平时喜 ...
- 一次使用pip后的总结
pip 常用命令及搭配操作 一 .当安装了多个版本python的时候,表示用pythonx 的pip 进行: 1.pythonx -m pip install + 包名 装 包 2.pythonx - ...
- 9月腾讯、百度、阿里高频的29道SSM框架面试题解析
一.Spring面试题 1.Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成. 两大核心:1.IOC/DI(控制反转/依赖注入) ...
- 《Java练习题》习题集一
编程合集: https://www.cnblogs.com/jssj/p/12002760.html Java总结:https://www.cnblogs.com/jssj/p/11146205.ht ...
- 《Java知识应用》Java Json说明和使用(fastjson)
工具包下载:链接: https://pan.baidu.com/s/1dn5uNwiJ1ICkbPknlMmkHQ 提取码: ayzn 复制这段内容后打开百度网盘手机App,操作更方便哦 1.JSON ...