
汇编语言
赖卓成
这个作者很懒,什么都没留下…
展开
-
汇编语言实现简单乘法
assume cs:codesgcodesg segment mov ax,0h mov cx,236; //cx为计数器,作为循环操作等指令中的计数器 s:add ax,123//没有学习过乘法 让ax连续加236次123 loop s 在结果中,为十六进制 mov ax,4c00h int 21hcodesg endsend...原创 2019-03-08 21:49:41 · 16242 阅读 · 0 评论 -
汇编语言 C语言混合编程。实现冒泡排序
#include<stdio.h>int main(void){ int i; int a[]={5,-8,9,4,1}; void sort(int *p); sort(a); for (i = 0; i <= 4; i++) { printf("\t%d", a[i]); } printf("\n"); r...原创 2019-05-31 12:19:57 · 1289 阅读 · 0 评论 -
汇编,控制扬声器(蜂鸣器)
按下n 关闭扬声器 按下y打开扬声器测试很多次了 代码检查过了,代码没问题,应该是需要在实地址方式dos平台才能实现效果主要用于练习 输入输出指令data segmentmess db 0dh,0ah,'shuru y dakai,shuru n guan',0dh,0ah,'$'messg db 0dh,0ah,'guanle',0dh,0ah,'$'messk db 0d...原创 2019-05-30 13:10:25 · 4394 阅读 · 1 评论 -
在Visual C程序中输入三个整数,然后调用汇编子程序求三个数中的最大值,结果在主程序中显示
以下为我个人写的代码:#include<stdio.h>int main(){ int getMax(int a,int b,int c); int a,b,c; printf("请输入三个整数"); scanf("%d%d%d",&a,&b,&c); printf("最大值为:%d\n",getMax(...原创 2019-05-30 13:06:04 · 1822 阅读 · 0 评论 -
宏的定义和调用,输出字符串
data segment string db "hello,bad boy",0ah,0dh,'$'data endscode segmentmainbegin macro mov ax,data mov ds,ax endmmainend macro mov ah,4ch int 21h endmdispmsg macro me...原创 2019-05-07 22:10:16 · 1041 阅读 · 0 评论 -
钱晓捷汇编习题:编写程序,把一个16位无符号二进制数转换成8421BCD码表示的5位十进制数
data segment array dw 54321 dbcd db 5 dup(?)data endscode segmentassume cs:code,ds:data;start: mov ax,data mov ds,ax mov dx,array mov bx,10000;除数 mo...原创 2019-05-06 23:08:57 · 6680 阅读 · 0 评论 -
设array是10个元素的数组,每个元素8位数据。试用子程序计算数组元素的校验和,并将结果存入变量result中。所谓校验和是指不记进位的累加用于检查信息的正确性
子程序的参数传递:1.用寄存器传递参数data segment count equ 10 array db 12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90h result db ?data endscode segmentassume cs:code,ds:datastart: mov bx,offset array...原创 2019-04-30 17:01:44 · 946 阅读 · 0 评论 -
汇编语言call实现计算组合公式(m!/n!)/(m-n)!
data segment m=8 n=3 res dw ?data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov cx,m call jc1;求m! mov bx,ax;bx=m! mov cx,n call jc1...原创 2019-04-23 16:47:24 · 1126 阅读 · 0 评论 -
钱晓捷第五版习题4 题4.8 bufx bufy bufz 为三个有符号十六进制数编写一个比较相等关系的程序如果这三个数都不相等则显示0,其中两个相等显示1 ,三个都相等则显示2
data segment bufX db 1h bufY db 0h bufZ db 1h sum dd ?data endscode segment assume cs:code,ds:datastart: mov dl,0h;统计相等个数 mov ax,data mov...原创 2019-04-23 14:58:56 · 3239 阅读 · 1 评论 -
汇编语言:从键盘输入有符号十进制数的子程序
data segment count =0ah array dw count dup(0) over db 'read over','$'data endscode segment;assume cs:code,ds:datastart: mov ax,data mov ds,ax xor ax,ax...原创 2019-05-01 23:05:51 · 2564 阅读 · 0 评论 -
编制程序,完成已知两个32位整数A和B相加,并将结果存入双字变量单元sum,不考虑溢出
;编制程序,完成已知两个32位整数A和B相加,并将结果存入双字变量单元sum,不考虑溢出data segment a dw 1111h,2222h b dw 4444h,6666h sum dw 7777h,7777hdata endscode segment assume cs:code,ds:datastart: mov ax,data ...原创 2019-04-13 19:40:27 · 3525 阅读 · 0 评论 -
汇编 王爽老师实验三,查看psp区
源程序:assume cs:codesgcodesg segment mov ax,2000h mov ss,ax mov sp,0 add sp,10 pop ax pop bx push ax push bx pop ax pop bx mov ax,4c00h int 21codesg e...原创 2019-03-08 00:04:18 · 3104 阅读 · 3 评论 -
一个简单的汇编程序
今天,第一次打汇编代码,编译,连接,用debug调试了一下。win10 搭建汇编环境。百度或者参考https://blog.youkuaiyun.com/hjw1542254356/article/details/79721546assume cs:codesg //assumecodesg segment mov ax, 0123h//让ax位123(十六进制) mov bx, 0...原创 2019-03-06 23:01:58 · 11739 阅读 · 0 评论 -
汇编语言:在代码段中使用栈
利用栈,将一段数据逆序存放assume cs:codesgcodesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0start: mov ax,cs mov ss,ax;段寄存器不能互相传值 mov ...原创 2019-03-08 22:56:59 · 1329 阅读 · 0 评论 -
王爽老师 汇编语言实验四
2. 编程,向内存0:200~023f依次传送数据0~63,程序中只能使用9条指令,包括“mov ax,4c00h”和"int 21h"源代码:assume cs:codesgcodesg segment mov ax,0020h mov ds,ax mov bx,0 mov cx,64//0-63一共64个数 需要传值64次 s:mov ds:[...原创 2019-03-08 22:35:54 · 1214 阅读 · 1 评论 -
汇编语言 段前缀的使用
问题:将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中。assume cs:codesgcodesg segment mov bx,0 mov cx,12 s: mov ax,0ffffh mov ds,ax mov dl,[bx] mov ax,002h mov ds,ax ...原创 2019-03-08 22:17:09 · 1656 阅读 · 0 评论 -
一段安全的空间
dos和其他合法程序一般都不会使用0:200~0:2ff的256个字节空间。如果修改其中的内容 会引起死机在不能确定一段内存空间中是否存放着重要的数据或代码的时候,不能随意向其中写入内容如下代码修改了 该段内存中的内容 导致死机assume cs:codesgcodesg segment mov ax,0 mov ds,ax mov ds:[26h],ax...原创 2019-03-08 22:01:21 · 408 阅读 · 0 评论