假如我汇编程序的输出为23:1204,我想去掉0

时间: 2024-03-12 11:44:01 浏览: 18
如果你想将输出中的 `0` 去掉,可以使用 `INT 29H` 中断来输出字符串。这个中断可以输出字符串中的字符,并且可以跳过字符串中的空格。下面是一个示例程序,可以将输出中的 `0` 去掉: ``` .model small .stack 100h .data msg db "23:1204$" .code main proc mov ax, @data mov ds, ax call RemoveZero ; 调用去掉 0 的程序 mov ah, 4ch ; 结束程序 int 21h main endp RemoveZero proc mov ah, 29h ; 输出字符串 lea dx, msg int 21h ret RemoveZero endp end main ``` 在这个程序中,我们使用了 `INT 29H` 中断来输出字符串,这个中断会跳过字符串中的空格,所以可以将输出中的 `0` 跳过。你可以将 `msg` 数据段中的字符串修改为你的输出,然后运行程序看看结果。
相关问题

用汇编语言在软件emu8086上编写以下程序:从键盘输入二个字符串,将二个字符串的字符合并后排序输出。

好的,以下是汇编程序的代码: ``` .model small .stack 100h .data msg1 db 'Enter first string: $' msg2 db 'Enter second string: $' msg3 db 'Merged and sorted string: $' input1 db 20,?,dup('$') ; 存放第一个字符串 input2 db 20,?,dup('$') ; 存放第二个字符串 merged db 40,?,dup('$') ; 存放合并后的字符串 nl db 10,13,'$' ; 换行符 .code main proc mov ax, @data mov ds, ax ; 初始化数据段寄存器 ; 输出提示信息,获取第一个字符串 lea dx, msg1 mov ah, 9 int 21h lea dx, input1 mov ah, 0Ah int 21h ; 输出提示信息,获取第二个字符串 lea dx, msg2 mov ah, 9 int 21h lea dx, input2 mov ah, 0Ah int 21h ; 合并两个字符串 lea si, input1 lea di, merged mov cx, [si] ; 获取第一个字符串的长度 movsb ; 复制第一个字符串 lea si, input2 mov cx, [si] ; 获取第二个字符串的长度 movsb ; 复制第二个字符串 mov byte ptr [di], '$' ; 添加字符串结束符 ; 排序合并后的字符串 lea si, merged ; SI 指向合并后的字符串 mov cl, [si] ; 获取字符串的长度 dec cl ; 长度减一,因为要去掉字符串结束符 mov di, si ; DI 指向字符串的开头 inc di ; DI 指向第一个字符 mov bx, di ; BX 存储当前比较字符的地址 sort_loop: cmp cl, 0 ; 如果字符串已经排序完成,跳出循环 jle sort_done mov cx, cl ; CX 存储当前字符串的长度 mov si, di ; SI 存储当前比较字符的地址 inc si ; SI 指向下一个字符 inner_loop: cmp cx, 0 ; 如果已经比较完整个字符串,跳出循环 jle inner_done mov al, [bx] ; AL 存储当前比较字符的值 mov dl, [si] ; DL 存储下一个字符的值 cmp al, dl ; 比较两个字符 jle no_swap ; 如果不需要交换,跳过 mov ah, [bx] ; 交换字符 mov al, [si] mov [bx], al mov [si], ah no_swap: inc si ; SI 移动到下一个字符 dec cx ; CX 减一 jmp inner_loop inner_done: inc di ; DI 移动到下一个字符 dec cl ; CX 减一 mov bx, di ; BX 存储当前比较字符的地址 jmp sort_loop sort_done: ; 输出合并后的字符串 lea dx, msg3 mov ah, 9 int 21h lea dx, merged mov ah, 9 int 21h lea dx, nl mov ah, 9 int 21h mov ah, 4ch int 21h ; 程序结束 main endp end main ``` 上述程序使用 `int 21h` 中断来进行输入和输出操作,并使用字符串指针和字符串指令来处理字符串。它将两个输入的字符串合并为一个字符串,并对合并后的字符串进行冒泡排序。最后,它输出排序后的合并字符串。

用汇编语言模仿上述程序完成去除字符串中的某个字符提示输入字符串;输入任意字符串string,点击Enter结束输入;提示输入字符;输入任意字符ch,点击Enter结束输入将字符串中字符ch去除,输出变化后的字符串string2点击Enter程序退出

以下是汇编语言模仿上述程序完成去除字符串中的某个字符的代码,已加上中文注释: DATA SEGMENT ; 请根据需要修改提示信息 STRING1 DB '请输入一个字符串:',13,10,'$' STRING2 DB '请输入需要删除的字符:',13,10,'$' STRING3 DB '删除后的字符串为:',13,10,'$' BUF1 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'$' BUF2 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'$' DATA ENDS STACKS SEGMENT PARA STACK DW 128 DUP(0) STACKS ENDS CODES SEGMENT ASSUME CS:CODES, DS:DATA, SS:STACKS START: MOV AX, DATA MOV DS, AX ; 提示用户输入一个字符串 LEA DX, STRING1 CALL DISPSTRING ; 读取用户输入的字符串 LEA DX, BUF1 CALL READSTRING ; 提示用户输入需要删除的字符 LEA DX, STRING2 CALL DISPSTRING ; 读取用户输入的字符 CALL READCHARACTER MOV BL, AL ; 删除字符串中的指定字符 LEA SI, BUF1 LEA DI, BUF2 MOV CX, 0 LOOP1: MOV AL, [SI] CMP AL, BL JZ SKIP MOV [DI], AL INC DI INC CX SKIP: INC SI LOOP LOOP1 ; 输出删除指定字符后的字符串 LEA DX, STRING3 CALL DISPSTRING LEA DX, BUF2 CALL PRINT ; 程序结束 MOV AH, 4CH INT 21H ; 读取字符串 READSTRING PROC LEA SI, BUF1 MOV CX, 0 MOV AH, 01H READSTRING_LOOP: INT 21H CMP AL, 13 JE READSTRING_EXIT MOV [SI], AL INC SI INC CX JMP READSTRING_LOOP READSTRING_EXIT: MOV [SI], '$' RET READSTRING ENDP ; 读取字符 READCHARACTER PROC MOV AH, 01H READCHARACTER_LOOP: INT 21H CMP AL, 13 JE READCHARACTER_EXIT MOV BL, AL JMP READCHARACTER_LOOP READCHARACTER_EXIT: RET READCHARACTER ENDP ; 显示字符串 DISPSTRING PROC MOV AH, 09H INT 21H RET DISPSTRING ENDP ; 输出字符串 PRINT PROC LEA SI, BUF2 MOV CX, 0 PRINT_LOOP: MOV DL, [SI] CMP DL, '$' JE PRINT_EXIT MOV AH, 02H INT 21H INC SI JMP PRINT_LOOP PRINT_EXIT: RET PRINT ENDP CODES ENDS END START

相关推荐

最新推荐

recommend-type

51单片机驱动16×16LED点阵显示动画汉字汇编程序

这里提供一个完整的AT89S51单片机驱动驱动led点阵显示具有动画效果的汉字的汇编程序列子。
recommend-type

51单片机驱动ADC0808电路图C51及汇编程序

这两天刚刚完成了一个用C编写的程序,这是我第一个用C语言编写的程序,并且调试成功。第一个C程序,值得纪念,也值得以后参考。本程序的功能是:1.ADC0808转换功能;2.数据16进制显示;3.串行通信数据。
recommend-type

51单片机步进电机控制汇编语言程序

本程序是通过秒信号触发中断来实现的,要求中断程序必须在1S内执行完毕;步进电机转速控制是通过8255输入信号在每次执行中断程序内调整控制信号的循环次数来实现的。
recommend-type

汇编程序DOSBox实验1.doc

1.在数据段DATA中有两个字数据X和Y, 假设X=1122H, Y=3344H, 编程求两个字的和,结果存放到Z单元中. 2.从SOURCE_BUFFER单元开始存放了20个字母A, 编程将这20个字母A的字符串传送到DEST_BUFFER开始的单元中. ...
recommend-type

七段数码管计数器 汇编程序

七段数码管计数器 汇编程序 【实验题目】七段数码管计数器 【实验目的】掌握8255A的方式0以及七段数码管的显示方法。 增加8255A PC7作为单脉冲按钮的输入,每按一次单脉冲按钮七段数码管加1,从00到59循环显示(初值...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。