
汇编语言
文章平均质量分 53
主要介绍汇编内容
繁星伴晚安
热爱诗和代码
展开
-
【嵌入式系统】实验一、熟悉 Linux 开发环境
虚拟机没有vmnet0首先点击 虚拟机->电源->关机 关闭虚拟机。 然后点击 编辑->虚拟网络编辑器。最后选择桥接模式的虚拟网卡 VMnet0,将该网卡桥接到以太网控制器。确定。添加网卡首先点击 编辑虚拟机设置。然后点击 添加->选择网络适配器->改为桥接模式。确定。设置 IP 地址首先 打开虚拟机->打开 terminal->输入 ifconfig 命令,可得添加的网卡名为eth4。然后 su root, 输入密码,再输入:s原创 2021-10-13 22:54:56 · 1981 阅读 · 0 评论 -
【汇编语言】实验三
assume cs:code,ds:data,ss:stackstack segment stackdb 1024 dup(?)stack endsdata segmentstr1 db 'please input x: $'str2 db 'please input y: $'str3 db 'please input z: $'str4 db 'min = $'x dw ?y dw ?z dw ?min dw ?data endscode segmentnewline ma原创 2021-05-21 15:42:10 · 1667 阅读 · 0 评论 -
【汇编语言】实验二
X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能:计算表达式值(V–(X*Y+Z-720))/X,将运算结果整数放在SUM1单元,余数放在SUM2单元。(1) 在DOSBOX编译链接成可执行文件后,使用Debug装入内存。(2) 使用U命令反汇编代码,并与源文件比对,需要注意数据段名、变量转入内存后的形式。(3) 分别在G命令执行前后,使用D命令查看各个变量的值。assume cs:code,ds:data,ss:stackstack seg原创 2021-05-19 19:14:50 · 6873 阅读 · 2 评论 -
【汇编语言】两个文件的链接
源程序的包含首先,我自己写了两个文件iostream.asm和main.asm。iostream.asm文件内容input proc ;从键盘输入一个数,0~65535push bpmov bp,sppush axpush bxpush cxmov bx,10mov word ptr[bp+4],0again:mov ah,01hint 21hcmp al,0dhje nextxor cx,cxadd cl,alsub cl,30hmov ax,word ptr [bp+原创 2021-05-11 12:53:08 · 1115 阅读 · 0 评论 -
【汇编语言】dosbox编译和链接
dosbox进行编译连接直接添加后缀axm,实际上还是txt文件。这是因为隐藏了已知文件的后缀名解决方法:第一步:点击此电脑最后,修改文件名就可以了原创 2021-05-10 14:50:36 · 415 阅读 · 0 评论 -
【汇编语言】中断
中断的定义就不再叙述了,自行百度中断向量号:中断向量:中断向量表:中断服务程序:sti,cli的作用以及什么时候用?中断的过程,到底干了什么事?(理解)中断向量的存放的内存地址在哪里、中断向量的值、中断向量值的含义。中断向量存放在地址为0000:0000h~0000:03ffh的内存空间中。中断向量号为n,则中断向量就存放在地址为0000:4n,0000:4n+1,0000:4n+2,0000:4n+3中。中断向量就是cs:ip的值,中断向量号为n,则中断向量的ip = 0000:[4原创 2021-05-09 22:58:55 · 3371 阅读 · 0 评论 -
【汇编语言】编程题目(三)
5.1试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。5.2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序输出5.3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL、DL中。5.4 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NOT MATCH’。5.5 试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次。5.6 编写程序,将一原创 2021-05-08 11:33:03 · 5281 阅读 · 0 评论 -
【汇编语言】编程题目(二)
题目将内存单元中的x,y两个数交换一下assume cs:code,ds:datadata segmentx dw 32y dw 78data endscode segmentstart: mov ax,data mov ds,ax mov ax,word ptr x xchg ax,word ptr y mov word ptr x,ax mov ax,4c00h int 21hcode endsend start题目给定一个数字n(0~9),输出nassume原创 2021-04-28 16:56:22 · 1762 阅读 · 0 评论 -
【汇编语言】从底层的角度讲述递归函数的实现
在main()函数中调用A()函数,底层是如何实现的呢?首先,看一下C++代码#include<iostream>using namespace std;int A(int n) { return n * n;}int main() { int m = A(10); cout << m; return 0;}底层视角在main()函数中调用递归函数,底层是如何实现的呢?首先,我们先用C++语言使用递归函数实现1 + 2 + 3 + … + n的和原创 2021-04-22 22:40:55 · 519 阅读 · 0 评论 -
【汇编语言】编程题目(一)
1.输出hello,world!assume cs:code,ds:datadata segmentstring db 'Hello,World',0dh,0ah,'$'data endscode segment mov ax,data mov ds,ax mov dx,offset string mov ah,9 int 21h mov ax,4c00h int 21h code endsend编译:链接:原创 2021-04-18 18:17:59 · 984 阅读 · 0 评论 -
【汇编语言】对8086的浅理解
8086/8088存储器和I/O组织关于汇编伪指令even操作机理的探讨存储体:存储单元:存储字:在计算机系统中,作为一个整体存入或取出内存储器的数据称为“存储字”。内存储器的字长:一个存储单元所包含二进制代码的个数。寄存器:8086 CPU有16条数据线,20条地址线。20条地址线可访问220 个地址。存储器有2个存储体,每个存储体有219个存储单元,每个存储单元有一个20位的地址,并且可以存储一个8位的数据。CPU可以通过段地址:偏移地址寻找出对应的存储单元,之后存储单元通过数据线将数原创 2021-04-12 22:04:29 · 530 阅读 · 0 评论 -
【汇编语言】实验一
1.利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。很笨的方法,一个字节一个字节存入当然,e命令可以一次修改多个单元2.将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中3.从DS:0000H开始的4个16位带符号数分别记为x,y,z,w,用E命令初始化为:540,1,-1, 0, 试求w=x*y+z-540540的16位原码表示:原创 2021-04-01 22:43:39 · 1671 阅读 · 0 评论 -
【汇编语言】DOSBox的进位和溢出区别
dosbox中debug的标志位次高位进位,最高位没进位,溢出。没进位次高位没进位,最高位进位,溢出且进位次高位进位,最高位进位,没溢出但是进位了。总结: 判断是否进位时,将两个数都当作无符号数,判断是否进位判断是否溢出时,将两个数都当作有符号数,判断结果是否超出范围。...原创 2021-04-01 12:37:51 · 1144 阅读 · 0 评论 -
【汇编语言】DOSBox DEBUG的命令
D命令显示主存单元的内容:d 显示当前(接着上一个D命令显示的最后的一个地址)主存内容e命令用于修改主存内容:寄存器命令r:只输入r会显示所有寄存器的值。r输入r 寄存器名会显示该寄存器的值r ax:后面可以修改该寄存器的值汇编命令a只输入a时,接着从上一个a命令的最后一个单元开始,若还没有使用过a命令,则从当前cs:ip开始a输入a 地址时,则从该地址开始写命令a 0100反汇编命令uu命令没有指定地址,从上一个u命令的最后一个单元开始,若还没有使..原创 2021-03-31 12:43:06 · 1358 阅读 · 0 评论 -
【汇编语言】DOSBox教程
把我安装的DOSBox文件夹所在位置 设置为C盘盘符(注:我安装的位置在D盘DOSBox这个目录下)原创 2021-03-30 23:19:10 · 589 阅读 · 0 评论 -
8086CPU各寄存器及其简介
8086CPU各寄存器及其简介原创 2021-03-14 20:11:30 · 471 阅读 · 0 评论