汇编的两道题

1.编写一个在显示器上显示一个笑脸字符的程序

看这段程序的结构,可以看出,每个代码段,带有segment的必须用ASSUME 来进行段分配。

cpp 复制代码
PROG1 SEGMENT;PROG1段的开始
	ASSUME CS:PROG1;PROG1(自己命名的,叫啥都可以)段对应代码段必须有段分配这步
START:
    MOV DL,1;将要显示的字符的的ASCII码值放到DL中
    MOV AH,02H;功能号02H调用,写2,02 02H都行,显示单个字符
    int 21H ;DOS功能号调用匹配的中断  20H为程序结束中断,可返回DOS操作。
    MOV AH,4CH;DOS程序终止,为DOS功能号,AL通常设置为0
    INT 21H;因为调用了DOS 功能,所以要用INT 21H
PROG1 ENDS;段结束
    END START

对于start的问题。

Start只是一个标号,可以改名字。

表示程序的开始 end start 就是结束,

也有的用main的

2.通过人机对话,从键盘输入一个10进制数字(0~9),查表求键入数字的平方值,存入AL寄存器中,并显示有关的提示信息。试编写汇编语言程序

有点不明白 0DH,0AH,'$'的作用:

这是把dos系统里的换行(0dh),回车(0ah)组成一个字符串,利用21h,-09h输出字符串功能,在屏幕上输出换行的作法

cpp 复制代码
DATAS SEGMENT
    TABLE DB 0,1,4,9,16,25,36,49,64,81;数字0~9的平方值
    BUF DB 'please input a number(0~9):',0DH,0AH,'$';提示信息
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX;设置DX
    MOV DX,OFFSET BUF;设置DX,使字符串首地址=DS:DX
    MOV AH,9H;显示以$结尾的字符串
    INT 21H
    MOV AH,01H;等待输入字符
    INT 21H
    AND AL,0FH 
    MOV BX,OFFSET TABLE;BX指向表头地址TABLE
    MOV AH,0;AX高位字节清零
    ADD BX,AX;表头地址+键入数字AL,结果存入BX
    MOV AL,[BX];查表求得平方值

    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
相关推荐
wechatbot8887 小时前
极客互动企业微信 SCRM 私域运营实战效果全景
大数据·汇编·微信·自动化·企业微信·rpa
祈禾5 天前
计算机组成原理之编译、汇编、链接、解释
开发语言·汇编·笔记·学习
水饺编程7 天前
AT&T 汇编语言学习笔记开篇语
c语言·汇编·c++
iCxhust7 天前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
·薯条大王8 天前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
txg6669 天前
VULOC:基于汇编切片的漏洞定位框架,精准锁定二进制中的危险代码
汇编·人工智能·深度学习·安全·网络安全
sunburn-10 天前
Java 队列全面详解:从入门到面试实战
java·开发语言·汇编·ide·idea
wechatbot88817 天前
企业微信API开发:登录-联系人查询-消息发送完整开发流程分享
汇编·微信·自动化·企业微信·ai编程·rpa
00后程序员张17 天前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
wechatbot88820 天前
解决企业微信官方 API 短板:iPad 协议全功能对接方案
java·汇编·windows·http·微信·企业微信