南京邮电大学汇编语言程序设计实验一(汇编语言语法练习与代码转换)

这篇具有很好参考价值的文章主要介绍了南京邮电大学汇编语言程序设计实验一(汇编语言语法练习与代码转换)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、程序改错(显示25+9=34)

排除语法错误:给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的信息对源程序进行修改,知道没有语法错误为止。然后进行链接,并执行相应可执行文件。正确的执行结果在屏幕上显示:25+9=34。


.486
DATA SEGMENT  USE16             ; error1: SEGMENT 关键词有空格


SUM     DB  ?,?                 ; error2: 多了一个逗号



MESG    DB  '25+9='
        DB  0, 0, '$'				; error3: 添加结束标志 '$'

N1      DB  9,	0F0H              	; error4: 十六进制字母开头的数字,需要以0开始
N2      DB  25                  	; error5: 数据类型为DB
DATA    ENDS

CODE    SEGMENT USE16
ASSUME  CS:CODE, DS:DATA

BEG:    
        MOV 	AX,		DATA
        MOV 	DS,		AX
        MOV 	BX,		OFFSET   SUM
        
        MOV 	AH,		N1
        MOV 	AL,		N2
        ADD 	AH,		AL
        MOV 	[BX],	AH
        
        CALL 	CHANG
        
        MOV 	AH,		9
        MOV 	DX,		OFFSET MESG   		; error6: 是MESG不是MEST 
        INT 	21H	
        MOV 	AH,		4CH
        INT 	21H

CHANG PROC								; error7: 不用加冒号
LAST:
        CMP  	byte ptr [BX],	10		; error8: 指定内存单元大小
        JC  	NEXT
        SUB  	byte ptr [BX],	10		; error9: 指定内存单元大小
        INC 	byte ptr [BX+7]			; error10: 指定内存单元大小
        JMP 	LAST
        

NEXT:   
        MOV 	AH,					SUM		; error11:
		ADD 	[BX+8],				AH
		ADD 	BYTE PTR [BX+7],	30H 	; error12: 长度不匹配
		ADD 	BYTE PTR [BX+8],	30H  	; error13: 放个位上的数
        RET
CHANG	ENDP								; error14: 不用加冒号
CODE    ENDS
END     BEG

南邮汇编实验一,实验报告,数据结构

二、统计字符串(42H~45H)

从BUF单元开始存有一字符串(长度<255),编程实现统计该字符串中的ASCII在42H~45H之间的字符个数,并将统计结果以二进制形式显示在屏幕。


.486
DATA SEGMENT USE16
BUF     DB     'ABBBCDEFGH'     ; 实质: 统计BCDE的个数
COUNT   EQU    $-BUF            ; COUNT: 字符串长度
DATA    ENDS
 
CODE SEGMENT USE16
    ASSUME CS:CODE,DS:DATA
BEG:    MOV     AX,     DATA
        MOV     DS,     AX
        MOV     BL,     0       	; BL=满足条件的字符个数,初始值为0
        MOV     SI,     0           ; BUF数组下标,初始值为0
        MOV     CX,     COUNT
        CALL    COMPARE	          	; 调用比较函数
        CALL    DISP
EXIT:   MOV     AH,     4CH
        INT     21H
    
COMPARE PROC
LAST:   CMP     BUF[SI],    42H
        JC      NEXT            	; 小于 42H, JUMP NEXT
        CMP     BUF[SI],    45H
        JA      NEXT        		; 大于 45H, jump
        INC     BL      			; 8位
NEXT:   INC     SI
        LOOP    LAST
        RET             			; 子程序返回
COMPARE ENDP
 
DISP    PROC            			; 以二进制输出,BL中存储的就是二进制
        MOV     CL,		8    		; 显示位8位
LAST:   MOV     DL,		'0'
        RCL     BL,		1  		  	; 带进位的循环左移
        JNC     NEXT    			; C=0,则跳转直接显示
        MOV     DL,		'1'
NEXT:   MOV     AH,		2
        INT     21H
        LOOP    LAST
        RET
DISP    ENDP
 
CODE    ENDS
        END     BEG

南邮汇编实验一,实验报告,数据结构
南邮汇编实验一,实验报告,数据结构

我们输入的是字符串是 ‘ABBBCDEFGH’,在范围42H~45H,即字符等于BCDE的个数为 00000110,为 5 个,结果正确文章来源地址https://www.toymoban.com/news/detail-717845.html

到了这里,关于南京邮电大学汇编语言程序设计实验一(汇编语言语法练习与代码转换)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式:ARM汇编语言程序设计基础教程

    ① 合理地分配存储器资源,将前述的目标系统‘数据结构模型’表示到各存储器单元。 ② CPU寄存器数量有限,在程序中,大多数操作都要使用寄存器;并且有的操作使用特定的寄存器(如堆栈操作使用SP/R13等),程序中要合理分配各寄存器的用途。 用计算机语言,对数据结

    2023年04月23日
    浏览(75)
  • 实验一8086计CPU系统寻址方式和汇编语言程序设计

    实验一8086计CPU系统寻址方式和汇编语言程序设 一、实验目的 (1)掌握8086CPU系统的逻辑地址和寻址方式。 (2)掌握8086CPU系统中机器数的表示方式。 (3)掌握指令的机器码表示方法。 (4)掌握堆栈的概念和操作过程。 (5)掌握集成开发环境下的程序设计和调试方法。 (6)掌握汇编语言实

    2023年04月22日
    浏览(39)
  • 汇编语言实验8:BIOS/DOS功能调用与宏指令程序设计

    掌握汇编语言程序设计的基本方法和技能 掌握汇编语言源程序的编辑汇编连接和执行的完整过程 通过上机操作理解宏定义、宏调用、宏展开的概念,熟练运用宏功能编写程序 掌握BIOS/DOS基础功能的实现调用方法 理解常用的DOS功能调用的基本使用,能熟练运用1号,2号,9号,

    2024年02月03日
    浏览(57)
  • 南京邮电大学数据库实验一(SQL语言)

    (1) 通过上机实践,熟悉Oracle的SQL * Plus环境及使用方法 (2) 掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵 (3) 加深对关系数据模型的数据结构和约束的理解 硬件:微型计算机 软件:Windows 操作系统、ORACLE 10G 实验原理基于第二、三、五章的相关内容。 实验内容如下:

    2024年04月27日
    浏览(37)
  • 南京邮电大学数学实验最新版

    1.1(1) 1.1(2) 1.2 1.3 1.4 1.5 1.6 1.7(1) f.m g.m main 1.7(2) f1.m g1.m main 1.8(1) 1.8(2) 1.9 1.10 1.11 1.12(1) 1.12(2) fun.m Main.m 2.1(1) dd.m main 2.2 2.3 Martin.m 2.4 2.5(1) 2.5(2) 3.1 结果 3.2 结果 3.3(1) 3.3(3) 3.4 4.1 4.3 4.4 4.5(1) 4.5(2) 4.6 4.7 4.8 4.9 实验一 //散点图 //模型建立 //数据预测

    2024年02月11日
    浏览(38)
  • 南京邮电大学数据库第一次课后作业

    1.单选题 (5分) ( B )是存储在计算机内有结构的数据的集合。 (A)数据库系统 (B)数据库 (C)数据库管理系统 (D)数据结构 2.单选题 (5分) 数据库的特点之一是数据的共享,严格的讲,这里的数据共享是指( D )。 (A)同—个应用中的多个程序共享一个数据集合 (B)多个用户

    2024年02月01日
    浏览(47)
  • 2023南京邮电大学通达学院《数学实验》MATLAB实验答案

    四月维夏,六月徂暑。 勤将励勉,勿望再晨。 ——赠nmy 南京邮电大学通达学院《数学实验》MATLAB实验答案 答案更新时间:2023.04.28,修改了4.2的存疑部分。已更新完成,如无错误不在更新 为了方便核算,我在代码中单独将 m 定义为自变量运算或者直接以m=117代入,作业中可以

    2023年04月20日
    浏览(103)
  • 南京邮电大学电工电子(数电)实验报告——组合逻辑电路 & 时序逻辑电路

    5、使用ISE软件完成组合逻辑设计的输入并仿真 6、掌握Testbech中组合逻辑测试文件的写法 7、下载并测试实现的逻辑功能 ①4选1数据选择器 RTL代码 仿真测试模块代码 ②3-8译码器 RTL代码 仿真测试模块代码 ③8-3优先编码器 RTL代码 仿真测试模块代码 ④十六进制七段LED显示译码器

    2024年02月04日
    浏览(52)
  • 南京邮电大学算法与设计实验四:回溯法(最全最新,与题目要求一致)

    要求用回溯法求解8-皇后问题,使放置在8*8棋盘上的8个皇后彼此不受攻击,即:任何两个皇后都不在同一行、同一列或同一斜线上。请输出8皇后问题的所有可行解。 用回溯法编写一个递归程序解决如下装载问题:有n个集装箱要装上2艘载重分别为c1和c2的轮船,其中集装箱i的

    2024年02月05日
    浏览(37)
  • 南京邮电大学算法与设计实验一:分治策略(最全最新,与题目要求一致)

    实验原理: 1、用分治法实现一组无序序列的两路合并排序和快速排序。要求清楚合并排序及快速排序的基本原理,编程实现分别用这两种方法将输入的一组无序序列排序为有序序列后输出。 2、采用基于“五元中值组取中值分割法”(median-of-median-of-five partitioning)的线性时

    2024年04月17日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包